Wydaje się, że jest to odwieczne pytanie (które jest :)), który serwer jest lepszy między Tomcat i JBoss, ale nie znalazłem jeszcze wystarczająco dobrej odpowiedzi, aby rozwiązać mój problem.
Wiem, że Tomcat to tylko silnik serwletów, a JBoss oferuje znacznie więcej funkcji po wyjęciu z pudełka, ale nie rozumiem, dlaczego Tomcat jest lepszy w niektórych sytuacjach niż jboss. Czytałem gdzieś, że JBoss ma architekturę, którą można podłączać i jeśli jest to wymagane, możesz odłączyć funkcje od JBoss, aby zasadniczo był to kontener serwletów tomcat. Jeśli tak jest, to czy nie lepiej jest to zrobić zamiast używać Tomcata, aby pozostawić pole do ponownego podłączenia.
Innym wyjaśnieniem, które znajduję na korzyść Tomcata, jest to, że jest lekki, czy oznacza to mniejsze zapotrzebowanie na pamięć, czy też umożliwia szybszą reakcję. Ponownie, muszę wiedzieć, że jboss nie ładuje komponentów zgodnie z wymaganiami, tj. Jeśli używam tylko serwletów, to jboss nie pominie pozostałych funkcji i automatycznie stanie się lekki.
Zasadniczo moja aplikacja nie ma żadnych funkcji Java EE, ale „lekkie” argumenty przemawiające za Tomcatem nie brzmią wystarczająco przekonująco z wyżej wymienionych powodów.
Proszę pomóż.
Edycja: w końcu zdecydowaliśmy się użyć tomcata i używamy go od ponad 6 miesięcy z dużą łatwością użytkowania. W rzeczywistości znaleźliśmy praktyczne zastosowanie, w którym mogliśmy bardzo łatwo uruchomić wiele instancji tomcat na tej samej maszynie serwera dla różnych programistów, to samo mogłoby być bardzo trudne w przypadku jboss.
Zauważyłem, że tomcat jest bezproblemowy w naszej pracy i dlatego może być właściwym wyborem, gdy nie używasz zbyt wielu funkcji Java EE. PS: Należy pamiętać, że nadal używamy Spring i Hibernate z Tomcat
Odpowiedzi:
Po pierwsze fakty, żadne nie jest lepsze . Jak już wspomniałeś, Tomcat dostarcza kontener serwletów, który obsługuje specyfikację Servlet (Tomcat 7 obsługuje Servlet 3.0). JBoss AS, „kompletny” serwer aplikacji, obsługuje Java EE 6 (w tym Servlet 3.0) w jego aktualnej wersji.
Tomcat jest dość lekki i jeśli potrzebujesz pewnych funkcji Java EE poza Servlet API, możesz łatwo ulepszyć Tomcat, dostarczając wymagane biblioteki jako część swojej aplikacji. Na przykład, jeśli potrzebujesz funkcji JPA, możesz dołączyć Hibernate lub OpenEJB, a JPA działa prawie po wyjęciu z pudełka.
Jak zdecydować, czy użyć Tomcata, czy pełnego stosu
Java EE
serwera aplikacji :Rozpoczynając projekt, powinieneś mieć pojęcie, czego on wymaga. Jeśli pracujesz w środowisku dużego przedsiębiorstwa, JBoss (lub dowolny inny serwer Java EE) może być właściwym wyborem, ponieważ zapewnia wbudowaną obsługę np .:
Moim zdaniem Tomcat jest bardzo dobrym rozwiązaniem, jeśli chodzi o aplikacje zorientowane na przeglądarkę internetową, przeznaczone dla użytkowników. Jeśli w grę wchodzi integracja zaplecza, należy rozważyć (przynajmniej) serwer aplikacji Java EE. Wreszcie, migracja WAR opracowanej dla Tomcata do JBoss powinna trwać 1 dzień.
Po drugie, należy również wziąć pod uwagę użycie w swoim środowisku. W przypadku, gdy Twoja organizacja już obsługuje, powiedzmy, 1000 instancji JBoss, zawsze możesz to zrobić, niezależnie od konkretnych wymagań (weź pod uwagę takie aspekty, jak koszt operacji lub podnoszenie umiejętności). Oczywiście dotyczy to odwrotnie.
moje 2 centy
źródło
Spójrz na TOMEE
Posiada wszystkie funkcje potrzebne do zbudowania kompletnej aplikacji Java EE.
źródło
Z pewnością zwróciłbym się do TomEE, ponieważ chodzi o to, aby Tomcat domyślnie zapewniał brak integracji JavaEE 6. To rodzaj bardzo dobrego kompromisu
źródło
Ściśle mówiąc; Bez funkcji Java EE Twoja aplikacja prawie wcale nie potrzebuje serwera aplikacji ;-)
Jak inni zauważyli, JBoss ma (mniej więcej) pełny stos Java EE, podczas gdy Tomcat jest tylko kontenerem internetowym. JBoss może być skonfigurowany tak, aby służył tylko jako kontenery internetowe, wtedy byłby to po prostu cienkie opakowanie wokół dołączonego kontenera internetowego tomcat. W ten sposób mógłbyś mieć prawie tak samo lekkiego JBossa, który byłby po prostu cienkim „opakowaniem” wokół Tomcata. To byłoby prawie tak samo lekkie.
Jeśli nie potrzebujesz żadnych dodatków, które oferuje JBoss, wybierz ten, który najbardziej Ci odpowiada. Który z nich jest dla Ciebie najłatwiejszy w konfiguracji i utrzymaniu?
źródło
Wyczytałem również, że na niektórych serwerach na przykład jeden potrzebuje tylko adnotacji w kontekście trwałości, ale na niektórych serwerach wstrzykiwanie powinno być wykonywane ręcznie.
źródło