Seleccionar página

Arrancar el servidor web Jetty desde una aplicación Java

por | Abr 23, 2011 | 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);

	}

}

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Blog de Neodoo Microsystems
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. Puedes encontrar más información en nuestra Política de privacidad y Política de cookies.