2012-08-27 16 views
18

Jeśli mogę wybrać, używam JBoss 7 do projektu Java EE 6 przy użyciu JSF 2 i CDI.CDI na Tomcat 7 - czy ma to sens?

Czasami środowisko projektu klienta jest mniej więcej ustawione - w jednym przypadku ograniczamy się do Tomcata (6 lub 7).

Tak, przeczytałem kilka artykułów na temat używania CDI (na przykład WELD) i JSF 2 w Tomcat, które pokazały, że w zasadzie nie ma problemu z robieniem tego.

Moje pytanie brzmi - czy ma sens? Czy może kontener serwletu nie jest odpowiednim środowiskiem dla takiej architektury? Czy ktoś ma jakiekolwiek doświadczenie z Tomcat + CDI dla czegoś więcej niż projekt demonstracyjny?

Z góry dziękuję!

+0

Byłoby świetnie, gdybyś mógł zaktualizować pytanie, w jaki sposób ostatecznie zdecydowałeś ... –

+1

@jangroth Jak już powiedziałem - moja decyzja byłaby łatwa, ale jeśli ostateczna decyzja dotyczy Tomcat, mogę z tym żyć i sto słoików w mojej wojnie, o ile nie ma prawdziwych punktów blokujących dla Tomcat + CDI. –

Odpowiedz

13

Dobre pytanie, przede wszystkim :)

Wdrażanie aplikacji przedsiębiorstwa do silnika serwletów jest głównym scenariusz np Wiosna, więc jest to z pewnością możliwe. Ale będziesz wiedział, że Spring to cały ekosystem API i plików konfiguracyjnych, a nie kilka JARów, które po prostu umieścisz na serwerze i baw się dobrze.

Grałem sporo z Weld & JSF na Tomcat 7, i działało całkiem nieźle. Istnieje jednak zasadnicza różnica między HelloWorldOnTomcat.java a prawdziwą aplikacją dla prawdziwych klientów. Jestem pewien, że jesteś tego świadomy.

Powiedziałbym, że będziesz w stanie skompilować przyzwoitą konfigurację w stosunkowo krótkim czasie. Ani CDI, ani JSF nie będą stanowić problemu. Ale w zależności od konkretnych wymagań będziesz musiał poradzić sobie z innymi aspektami, które nie są objęte gotowym Tomcat. Bezpieczeństwo, tworzenie klastrów, przełączanie awaryjne, przesyłanie wiadomości, asynchronizacja w celu wskazania kilku problemów (i transakcji, o czym wspomniano w komentarzach).

Jeśli jesteś (mniej lub bardziej) biegły w takich wymaganiach, a twój nadchodzący projekt jest raczej spokojny i nie powinien kontrolować następnej misji na Marsie - z pewnością spróbowałbym.

Z drugiej strony, jeśli wiesz o takich wymaganiach, powinienem szukać (a) konfiguracji na serwerze aplikacji Java EE lub (b) innego stosu na Tomcat.

+5

Po prostu dodam do listy funkcji nie objętych Tomcat + JSF i CDI, zarządzanie transakcjami. Jeśli twoja aplikacja nie jest tylko do odczytu, prawdopodobnie będziesz potrzebować transakcji, a więc będziesz musiał użyć do tego zewnętrznej struktury (możesz użyć do niej wiosny) lub zrobić to sam. Ponieważ kontener JEE6 jest co najmniej tak lekki, jak Tomcat, spróbuj pchnąć nieco JEE6 (TomEE może być dobrym punktem początkowym;)) – Kazaag

4

Spójrz na Apache Tomee:

Apache TomEE, wymawiane "Tommy", jest wszystko Apache Java EE 6 Web profilu certyfikat stos gdzie Tomcat jest Górny pies. Apache TomEE to zmontowany z pliku zip z Apache Tomcat. Zaczynamy od Tomcat, dodaj nasze słoiki i rozpakuj resztę. Rezultatem jest Tomcat z dodanymi funkcjami EE - TomEE.

+1

Nigdy go nie użyłem, ale słyszałem o projekcie.To rzeczywiście ma sens, ale problem jest taki, jak powiedziałem w moim poście, że czasami środowisko jest ustawione na stronie klienta, więc jest zainstalowany Tomcat 7 i wszystko, co możemy zrobić, to wdrożyć plik WAR. –

+1

W tym przypadku, myślę, że powinieneś sam zawinąć wszystkie komponenty do pliku WAR. Korzystanie z Mavena powinno bardzo pomóc. Nie przypominam sobie, gdybyś musiał dostroić dowolną konfigurację w kontenerze (Tomcat) dla niektórych składników. W każdym razie, przyjrzenie się stronie Apache TomEE może pomóc, ponieważ uzyskali w pełni funkcjonalną integrację stosu JEE na serwerze Apache Tomcat. –

Powiązane problemy