2011-02-04 7 views
5

Nell'ambito della distribuzione di piccole applicazioni Web Java EE in vari siti client, sono alla ricerca di una soluzione per server applicativi semplice.È possibile utilizzare Jetty come server applicazioni Java EE leggero?

Penso di ricordare che è stato possibile utilizzare Jetty come un server applicazioni JavaEE 6 leggero ma non riesco a trovare ulteriori prove su questo al momento sul web.

Sapendo che il mio ambiente di sviluppo è JSF2 + RichFaces, CDI (Weld) e JPA 2 => NO EJB a questo punto), Jetty è una possibile soluzione per me?

In caso affermativo, potresti indicarmi qualche documentazione o parole chiave specifiche che mi aiutino? In caso negativo, quale altro server di applicazioni Java EE 6 leggero dovrei usare?

risposta

13

Il jetty è un contenitore servlet, proprio come Tomcat. Al momento è completamente inadatto come server di applicazioni Java EE 6 poiché il requisito principale per un contenitore di servlet in quello stack è rappresentato da un contenitore Servlet 3.0.

Jetty 7, l'ultima versione stabile, è ancora in Servlet 2.5. Al momento nessuno sa quando sarà rilasciato Jetty 8, che supporterà Servlet 3.0, ma le versioni sperimentali possono già essere scaricate. Vedi

Anche quando il Jetty 8 sarà disponibile, sarà comunque necessario aggiungere JSF2 (Mojarra), CDI (Weld) e JPA2 (Hibernate).

Le alternative attualmente leggere sono Glassfish V3 (in particolare la versione Web Profile). Questo pesa con un download di 47 MB ​​e ti dà il profilo web completo. Glassfish si avvia in circa un secondo su sistemi moderni e qualcosa come 2 o 3 su sistemi più vecchi. Il sovraccarico della memoria è minimo.

Un'altra alternativa è la resina Caucho. È distante un pollice dall'essere certificato Java EE 6 Web Profile (vedere http://caucho.com/resin-4.0/changes/resin-4.0.14.xtp), e per tutti gli scopi pratici è già pienamente utilizzabile come server applicazioni Java EE 6. Anche se non ho usato personalmente la resina, essere leggero sembra essere la loro priorità. (si noti che 'leggero' è un termine contestato vaga e molto)

Infine, si potrebbe dare JBoss AS 6 un giro. Poche persone chiamerebbero JBoss AS "leggero" (il tempo di avvio sull'hardware veloce è di almeno 12 secondi e la sua dimensione di download è di 181 MB), ma è gratuito e open source e, a seconda della definizione di peso leggero, quei numeri potrebbero essere "abbastanza buoni" .

+0

Ho appena installato con successo una WAR in resina ed è stato piuttosto semplice. La resina pesa a 100 MB. (Stessa dimensione della mia WAR dispiegata ...) Glassfish è a 4.0 ora, e [Jetty] (http://www.eclipse.org/jetty/) è a 9 - Non sono sicuro se questo cambia qualcosa ora. – CrazyPyro

+0

Come notato da CrazyPyro, Jetty è alle 9.1 ora. La versione 9.1 supporta Servlet 3.1 e JSP 2.3. Vedi https://en.wikipedia.org/wiki/Jetty_(web_server)#History per ulteriori informazioni. –

0

Sono stato molto contento di una soluzione molto simile alla tua ma utilizzando Spring 3 anziché CDI. È quasi lo stesso. Tutto era in bundle all'interno di WAR e per lo sviluppo mvn jetty:run era abbastanza. Non è necessario un app server locale.

Tuttavia sono sicuro che è possibile incorporare l'implementazione di Weld CDI all'interno di WAR. Comunque preferirei uno stack CDI JEE 6 "vero" o Spring.