2011-02-04 9 views
5

W zakresie wdrażania małych aplikacji internetowych Java EE w różnych witrynach klientów, szukam łatwego rozwiązania serwera aplikacji.Czy Jetty może być używany jako lekki serwer aplikacji Java EE?

Myślę, że pamiętam, że mogłem użyć Jetty jako lekkiego serwera aplikacji JavaEE 6, ale nie mogę znaleźć więcej dowodów na ten temat w sieci.

Wiedząc, że moje środowisko programistyczne to JSF2 + RichFaces, CDI (Weld) i JPA 2 => NO EJB w tym momencie), czy Jetty jest możliwym rozwiązaniem dla mnie?

Jeśli tak, czy mógłbyś wskazać mi jakieś pomocne informacje dotyczące dokumentacji lub konkretnych słów kluczowych? Jeśli nie, to jaki inny lekki serwer aplikacji Java EE 6 powinienem użyć?

Odpowiedz

13

Molo to kontener serwletu, podobnie jak Tomcat. W tej chwili jest całkowicie nieodpowiedni jako serwer aplikacji Java EE 6, ponieważ głównym wymaganiem dla kontenera serwletów w tym stosie jest kontener Servlet 3.0.

Jetty 7, najnowsza stabilna wersja, nadal znajduje się w Servlet 2.5. W tej chwili nikt nie wie, kiedy zostanie wydany Jetty 8, który będzie obsługiwał Servlet 3.0, ale wersje eksperymentalne można już pobrać. Zobacz http://www.eclipse.org/projects/project-plan.php?projectid=rt.jetty

Nawet jeśli Jetty 8 będzie w końcu dostępny, nadal będziesz musiał dodać JSF2 (Mojarra), CDI (Weld) i JPA2 (Hibernate).

Obecnie lekkie rozwiązania alternatywne to Glassfish V3 (szczególnie wersja profilu internetowego). To waży 47 MB ​​pobierania i daje pełny profil internetowy. Glassfish uruchamia się w około jednej sekundzie w nowoczesnych systemach i około 2 lub 3 na starszych. Obciążenie pamięci jest minimalne.

Kolejną alternatywą jest żywica Caucho. Jest o cal od certyfikowanego profilu Java EE 6 (zobacz http://caucho.com/resin-4.0/changes/resin-4.0.14.xtp), a ze względów praktycznych jest już w pełni użyteczny jako serwer aplikacji Java EE 6. Chociaż nie korzystałem osobiście z żywicy, bycie lekkim wydaje się być ich najważniejszym priorytetem. (należy pamiętać, że „lekki” jest niejasne i wiele spornych termin)

Wreszcie, można dać JBoss AS 6 spin. Niewiele osób nazwałoby JBoss AS "lekkim" (czas uruchomienia na szybkim sprzęcie wynosi co najmniej 12 sekund, a jego rozmiar pobierania to 181 MB), ale jego wolne i otwarte źródło oraz w zależności od definicji lekkości te liczby mogą być "wystarczająco dobre" .

+0

Właśnie z powodzeniem wdrożyłem WOJNĘ w Żywicę i było to całkiem proste. Żywica waży 100 MB. (Ten sam rozmiar, co mój wdrożony WAR ...) Glassfish ma teraz 4.0, a [Jetty] (http://www.eclipse.org/jetty/) ma 9 lat. - Nie jestem pewien, czy to coś teraz zmieni. – CrazyPyro

+0

Jak zauważył CrazyPyro, Jetty ma teraz 9.1. Wersja 9.1 obsługuje Servlet 3.1 i JSP 2.3. Zobacz https://en.wikipedia.org/wiki/Jetty_(web_server)#History, aby uzyskać więcej informacji. –

0

Byłem bardzo zadowolony z rozwiązania bardzo podobnego do twojego, ale używając Spring 3 zamiast CDI. To prawie to samo. Wszystko było w pakiecie w ramach WAR i dla rozwoju wystarczyło mvn jetty:run. Nie jest wymagany żaden lokalny serwer aplikacji.

Jednak jestem pewien, że możesz osadzić implementację Weld CDI w WAR. Nadal wolę albo "prawdziwy" stos CDI JEE 6 albo wiosnę.

Powiązane problemy