2011-02-04 3 views
5

Dans le cadre du déploiement de petites applications Web Java EE sur différents sites clients, je suis à la recherche d'une solution serveur d'applications simple. Je pense que je me souviens avoir entendu dire qu'il était possible d'utiliser Jetty comme un serveur d'applications léger JavaEE 6, mais je n'arrive pas à trouver plus de preuves à ce sujet sur le web. Sachant que mon environnement de développement est JSF2 + RichFaces, CDI (Weld) et JPA 2 => NO EJB à ce stade), Jetty est-il une solution possible pour moi?Can Jetty peut-il être utilisé comme serveur d'application léger Java EE?

Si oui, pourriez-vous me signaler une documentation ou des mots-clés spécifiques pour m'aider? Si non, quel autre serveur d'application Java EE 6 léger dois-je utiliser?

Répondre

13

Jetty est un conteneur de servlet, tout comme Tomcat. À l'heure actuelle, il est totalement inadapté en tant que serveur d'applications Java EE 6, étant donné que l'exigence principale pour un conteneur de servlet dans cette pile est un conteneur Servlet 3.0.

Jetty 7, la dernière version stable, est toujours à Servlet 2.5. Pour le moment, personne ne sait quand Jetty 8, qui prendra en charge Servlet 3.0, sera publié, mais des versions expérimentales peuvent déjà être téléchargées. Voir http://www.eclipse.org/projects/project-plan.php?projectid=rt.jetty

Même lorsque Jetty 8 sera disponible, vous devrez bien sûr ajouter JSF2 (Mojarra), CDI (Weld) et JPA2 (Hibernate).

Actuellement, les solutions de rechange légères sont Glassfish V3 (en particulier la version Web Profile). Cela pèse à un téléchargement de 47 Mo et vous donne le profil complet du Web. Glassfish démarre dans environ une seconde sur les systèmes modernes et quelque chose comme 2 ou 3 sur les plus anciens. Les frais généraux de mémoire sont minimes.

Encore une autre alternative est Caucho Resin. Il est à un pouce d'être certifié Java EE 6 Web Profile (voir http://caucho.com/resin-4.0/changes/resin-4.0.14.xtp), et à toutes fins pratiques est déjà pleinement utilisable en tant que serveur d'application Java EE 6. Bien que je n'ai pas personnellement utilisé la résine, être léger semble être leurs priorités. (Notez que la 'légère' est une vague et beaucoup terme contesté)

Enfin, vous pouvez donner JBoss AS 6 un spin. Peu de gens qualifieraient JBoss AS de «léger» (le temps de démarrage sur le matériel rapide est d'au moins 12 secondes, et sa taille de téléchargement est de 181 Mo), mais sa source est libre et libre. .

+0

Je viens de déployer avec succès un WAR dans Resin, et c'était assez simple. La résine pèse 100MB. (Même taille que mon WAR déployé ...) Glassfish est à 4.0 maintenant, et [Jetty] (http://www.eclipse.org/jetty/) est à 9 - Je ne sais pas si cela change quelque chose maintenant. – CrazyPyro

+0

Comme l'a noté CrazyPyro, Jetty est à 9.1 maintenant. La version 9.1 prend en charge Servlet 3.1 et JSP 2.3. Voir https://en.wikipedia.org/wiki/Jetty_(web_server)#History pour plus d'informations. –

0

J'étais très heureux avec une solution très similaire à la vôtre mais en utilisant Spring 3 au lieu de CDI. C'est presque pareil. Tout était regroupé dans WAR et pour le développement mvn jetty:run était suffisant. Aucun serveur d'application local requis.

Cependant, je suis sûr que vous pouvez intégrer l'implémentation Weld CDI dans WAR. Pourtant je préférerais soit "vrai" CDI JEE 6 stack ou Spring.

Questions connexes