es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Jetty 11 con Jersey no está aceptando solicitudes.

Estoy aprendiendo aplicación web en Java y comencé con Jetty y Jersey para crear la API REST. Estoy siguiendo este artículo https://mkyong.com/webservices/jax-rs/jersey-and-jetty-http-server-examples/#start-jersey-jetty-application

Con esto, puedo compilar y ejecutar el servidor, sin embargo, no acepta ninguna solicitud. Intenté con telnet, curl y otras cosas, pero siempre me sale “connection refused”.

Mi archivo MainApp.java se ve así:

public class MainApp {

    public static final String BASE_URI = "http://localhost:8080/";

    public static Server startServer() {

        // escanea paquetes
        // final ResourceConfig config = new ResourceConfig().packages("com.mkyong");

        final ResourceConfig config = new ResourceConfig(Receiver.class); -- Esta es mi fuente.

        final Server server =
                JettyHttpContainerFactory.createServer(URI.create(BASE_URI), config);

        return server;

    }

    public static void main(String[] args) {

        try {

            final Server server = startServer();

            Runtime.getRuntime().addShutdownHook(new Thread(() -> {
                try {
                    System.out.println("Aplicación apagándose...");
                    server.stop();
                    System.out.println("Listo, salida.");
                } catch (Exception e) {
                    Logger.getLogger(MainApp.class.getName()).log(Level.SEVERE, null, e);
                }
            }));

            System.out.println(
                    String.format("Aplicación iniciada.%nDetén la aplicación usando CTRL+C"));

            // bloquea y espera la señal de apagado, como CTRL+C
            Thread.currentThread().join();

            // alternativa
            // Thread.sleep(Long.MAX_VALUE);       // duerme para siempre...
            // Thread.sleep(Integer.MAX_VALUE);    // duerme por alrededor de 60+ años

        } catch (InterruptedException ex) {
            Logger.getLogger(MainApp.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

}

¿Me falta alguna otra configuración? Cualquier ayuda sería apreciada.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puede haber varias razones por las que el servidor no acepte ninguna solicitud. Aquí hay algunas cosas que puedes verificar:

    1. Asegúrate de tener el número de puerto correcto en la variable BASE_URI. Por defecto, Jetty utiliza el puerto 8080, pero si has configurado manualmente el puerto a otro valor, necesitarás actualizar esta variable.
    2. Verifica si el servidor está realmente en funcionamiento abriendo un navegador web e ingresando la URL `http://localhost:8080`. Si el servidor está en ejecución, deberías ver un mensaje que dice “Hello World”.

    3. Intenta desactivar cualquier firewall o programa antivirus que pueda estar bloqueando la conexión.

    4. Asegúrate de que la URL del punto final sea correcta. En el artículo al que haces referencia, la URL del punto final para la clase Receiver es `http://localhost:8080/receiver`. Si estás utilizando una URL de punto final diferente, asegúrate de utilizar esa en su lugar.

    Si ninguna de estas soluciones funciona, es posible que necesites proporcionar más información o buscar ayuda en un foro o comunidad de soporte.

Comments are closed.