Scelta del contenitore EJB 3.x incorporato per eseguire l'app Java EE 5 su Tomcat
Domanda
Mi scuso in anticipo se la mia domanda sembra troppo generica: sto facendo tutte le ricerche preliminari da solo, ma nulla sostituisce l'esperienza reale...
Il mio obiettivo è portare un'applicazione Java EE legacy (pre-EJB 3.x) su Tomcat con contenitore EJB incorporato.Le mie scelte attualmente sono le seguenti:
- EJB incorporabile con JBoss
- Apache OpenEJB
- Consorzio OW2 EasyBeans
- qualunque altra cosa?
Mi aspetto di utilizzare JMS (con MDB), Session bean (con stato e senza stato), JPA e sono davvero entusiasta di utilizzare JSF con Seam.
Ora, date le scelte di cui sopra, ci sono vantaggi nell'utilizzare l'uno o l'altro provider EJB incorporato?
Soluzione
Di seguito sono riportati i risultati dei miei compiti a casa: spero che qualcuno trovi utile questa analisi dei provider EJB incorporati per decidere se e quale contenitore utilizzare.
Ho scelto Apache OpenEJB poiché offre un ricco set di funzionalità, supporta parzialmente EJB 3.1 e sembra l'offerta più attiva e completa.
Come al solito, quale prodotto dovrebbe funzionare meglio per te dipende davvero dalle tue reali esigenze, obiettivi e ambiente.
JBoss incorporato
- Licenza:LGPL
- Giava:JDK 5.0
- Integrazione Tomcat:Sì, modifica a server.xml
- Versioni di Tomcat:5.0 e versioni successive (?)
- Distribuzione a Tomcat:Guerra incorporata
- Elenco delle funzionalità:JNDI (Local), JBoss TS, JBoss Messaging, JCA, JNDI, EJB, JPA, POLCILE TX Local TX/Connection, Configurazione JNDI EJB:Scavava l'implementazione JNDI di Tomcat stratificandosi in cima all'istanziazione JNDI di Tomcat;Tomcat JNDI è di sola lettura
- Tipi di distribuzione:Solo VASO
- Supporto alla gestione:NO
- Supporto:Limited, costruito sul microcontainer jboss superiore che è il nucleo di JBoss 5.0, opzione supportata per la cucitura su Tomcat
- Fornitore JMS:stessi file di configurazione di JBoss 5.x.JMS è configurato in HSQLDB-PERSISTION-SERVICE.XML e questo può essere regolato per funzionare con altri database
- Pool di connessioni XA:NO
- Servizi timer EJB:NO
- *Fornitori di persistenza:*Ibernazione
- Limitazioni:nessun JMS remoto;solo interfacce locali;Implementazione JBOSS JBOSS solo locale
- Documentazione:limitato
- EJB3.1:NO
Apache OpenEJB 3.1
- Licenza: Licenza Apache
- *Java:*JDK 5.0 o 6.0
- Integrazione Tomcat:Sì, modifiche allo script della shell di avvio
- *Versioni Tomcat:*Tomcat 6.x o 5.5
- *Distribuzione su Tomcat:*file war
- *Elenco delle funzionalità:*EJB 3.0 e 3.1, JTA, JAX-WS, JMS, connettori J2EE, JPA, JNDI.OpenEJB utilizza diversi altri framework open source come OpenJPA per fornire persistenza JPA e CMP, ActiveMQ per JMS/MDB e Apache CXF per funzionalità JAX-WS.
- *Configurazione JNDI:*schema di denominazione JNDI flessibile
- *Tipi di schieramento:*EAR collassato (guerra), JAR
- Supporto alla gestione: mbean ActiveMQ JMX
- *Supporto:*Supporto della community, mailing list e forum, contenitore EJB per Apache Geronimo
- *Fornitore JMS:*ActiveMQ
- *Pool di connessione XA:*Sì
- *Servizi timer EJB:*Sì
- *Fornitori di persistenza:*OpenJPA, Hibernate
- *Limitazioni:*OpenEJB utilizza OpenJPA per fornire persistenza JPA e CMP e OpenJPA attualmente richiede un JavaAgent per funzionare correttamente.
- *Documentazione:*limitata ma migliore di altre
- *EJB 3.1:*parziale
EasyBeans
- *Licenza:*LGPL
- *Java:*JDK 5.0 o 6.0
- Integrazione Tomcat:SÌ
- *Versioni Tomcat:*Tomcat 6.x o 5.5
- *Distribuzione su Tomcat:*file war
- *Elenco delle funzionalità:*Supporto EJB 3.0, JAX-WS, OSGi
- Configurazione JNDI:?
- *Tipi di distribuzione:*JAR
- Supporto alla gestione:?
- *Supporto:*Supporto comunitario e supporto professionale, mailing list, JIRA, contenitore EJB per server applicativo JOnAS
- Fornitore JMS:?
- Pool di connessioni XA:?
- *Servizi timer EJB:*Sì
- *Fornitori di persistenza:*OpenJPA, Hibernate, TopLink, EclipseLink
- Limitazioni:
- *Documentazione:*limitata
- EJB 3.1: NO