Un poco de Jetty (Un Servidor Web ligero ligero!!!)

Jettyes un Servidor Web y Contenedor de Servlets preparado para ser embebido en nuestras aplicaciones.

Actualmente se encuentra en la versión 8:

Existen 2 distribuciones principales de Jetty:

Jetty:

· Alojado en Eclipse

· Asynchronous HTTP Server

· Standard Servlet Container

· Web Sockets server

· Asynchronous HTTP Client

· OSGi, JNDI, JMX, JASPI, AJP support

Hightide

· Distribución de Cohaus que ofrece servicios adicionales preconfigurados como JNDI, XS y JSBC.

ARQUITECTURA:

La Arquitectura de Jetty se basa en 4 componentes:

Server:

· Es el core

· Contiene un número de conectores que aceptan conexiones (HTTP, HTTPS, AJP13,…)

· Contiene un conjunto de Handlers que procesan las peticiones del cliente desde los conectores y genera la respuesta

· Los hilos del Threadpool se encargan de hacer este procesamiento

Conectores:

· Jetty ofrece un conjunto de conectores que acepta peticiones. Jetty incluye:

Handlers:

· Jetty incluye estos:

CONFIGURACIÓN:

Jetty puede configurarse a través de XML o de Java.

Con XML tengo un XML como este:

Y se arranca:

También puedo configurarlo en Java:

USO

Jetty puede usarse en un gran número de escenarios:

Servir contenido estático:

Configuración SSL:

Corres tras un reverse-proxy

Jetty puede correr detrás de un proxy inverso como Apache con mod_proxy y mod_ajp.

Arranque de Jetty

Seguridad

Jetty incluye varios Security Realms para proteger nuestras aplicaciones Web:

Soporte WebSockets

Jetty soporta WEbSockets.

Clustering de sesión

Jetty provee un SessionManager basado en JDBC.

MODO STANDALONE

Jetty también puede correr en modo standalone, para eso usa estos ficheros de configuración:

INTEGRACIÓN CON MAVEN

Jetty puede correrse de forma muy sencilla sobre Maven