Arrancar el servidor web Jetty desde una aplicación Java
Arrancar el servidor web Jetty desde una aplicación Java.
Por la pereza de tener que montar una aplicación WAR con su correspondiente servlet que procesase esta URL y tener 2 proyectos diferentes arrancados en Eclipse, me vino a la cabeza el arrancar un servidor web desde la misma aplicación.
De los servidores web que encontré (el que viene por defecto en Java 6 tenía restricciones), he escogido Jetty y dejo el ejemplo que aparece en la documentación del proyecto (¡ Vamos que no me he currado nada salvo un copy-paste !).
Arrancamos el servidor web en el puerto 8080, indicando que cuando se ponga el contexto /hello, la clase HelloHandler gestionará la llamada.
package es.neodoo.http.server;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
/**
* The simplest possible Jetty server.
*/
public class SimplestServer {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ContextHandler context = new ContextHandler();
context.setContextPath("/hello");
context.setResourceBase(".");
context.setClassLoader(Thread.currentThread().getContextClassLoader());
server.setHandler(context);
context.setHandler(new HelloHandler());
server.start();
server.join();
}
}
Y ahora falta la clase HelloHandler, que es quién controlará las URL’s cuando se acceda por http://localhost:8080/hello
package es.neodoo.http.server;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
public class HelloHandler extends AbstractHandler {
String greeting = null;
String body = null;
public HelloHandler() {
this.greeting = "Hello World";
}
public HelloHandler(String greeting) {
this.greeting = greeting;
}
public HelloHandler(String greeting, String body) {
this.greeting = greeting;
this.body = body;
}
public void handle(String target, Request baseRequest,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println("<h1>" + greeting + "</h1>");
if (body != null)
response.getWriter().println(body);
}
}
Tips, tutoriales y novedades
Recibe directamente en tu correo todas las novedades, tips y tutoriales gratuitos que compartimos desde Neodoo Microsystems



0 comentarios