Выбор встроенного контейнера EJB 3.x для запуска приложения Java EE 5 на Tomcat
Вопрос
Заранее прошу прощения, если мой вопрос покажется слишком общим - все предварительные исследования я провожу сам, но ничто не заменит реального опыта...
Моя цель — перенести устаревшее приложение Java EE (до EJB 3.x) на Tomcat со встроенным контейнером EJB.На данный момент мой выбор таков:
- Встраиваемый EJB JBoss
- Апач OpenEJB
- Консорциум OW2 EasyBeans
- что-нибудь еще?
Я планирую использовать JMS (с MDB), сеансовые компоненты (с сохранением и без сохранения состояния), JPA, и мне очень нравится использовать JSF с Seam.
Теперь, учитывая вышеизложенный выбор, есть ли какие-либо преимущества в использовании того или иного встроенного поставщика EJB?
Решение
Ниже приведены результаты моей собственной домашней работы. Надеюсь, кто-нибудь найдет этот анализ встроенных поставщиков EJB полезным для принятия решения о том, какой контейнер использовать.
Я выбрал Apache OpenEJB, поскольку он предлагает богатый набор функций, частично поддерживает EJB 3.1 и кажется наиболее активным и хорошо продуманным предложением.
Как обычно, выбор продукта, который подойдет вам лучше всего, зависит от ваших реальных требований, целей и среды.
Встроенный JBoss
- Лицензия:LGPL
- Джава:JDK 5.0
- Интеграция Tomcat:Да, изменение в server.xml
- Версии Tomcat:5.0 и выше (?)
- Развертывание в Tomcat:Встроенная война
- Список функций:JNDI (Local), JBOSS TS, JBOSS Messaging, JCA, JNDI, EJB, JPA, Local TX DataSource/Pool, EJB Security JNDI Configuration:Переопределяет реализацию JNDI от Tomcat, накладывая себя на вершину экземпляра JNDI Tomcat;Tomcat JNDI доступен только для чтения.
- Типы развертывания:только JAR
- Поддержка руководства:Нет
- Поддерживать:Limited, построенный на Top Jboss Microcontainer, который является ядром JBoss 5.0, поддерживается опция для шва на Tomcat
- JMS-провайдер:те же файлы конфигурации, что и JBoss 5.x.JMS настроен в HSQLDB-persistence-service.xml, и это можно настроить для работы с другими базами данных
- Пул соединений XA:Нет
- Службы таймера EJB:Нет
- *Поставщики сохраняемости:*Спящий режим
- Ограничения:нет удаленного JMS;только локальные интерфейсы;Реализация JBOSS JBOSS JBOSS JNDI
- Документация:ограниченное
- EJB 3.1:Нет
Апач OpenEJB 3.1
- Лицензия: Лицензия Апач
- *Java:*JDK 5.0 или 6.0.
- Интеграция Tomcat: Да, изменения в сценарии запуска оболочки.
- *Версии Tomcat:*Tomcat 6.x или 5.5.
- *Развертывание в Tomcat:*файл war.
- *Список функций:*EJB 3.0 и 3.1, JTA, JAX-WS, JMS, соединители J2EE, JPA, JNDI.OpenEJB использует несколько других платформ с открытым исходным кодом, таких как OpenJPA для обеспечения устойчивости JPA и CMP, ActiveMQ для JMS/MDB и Apache CXF для функций JAX-WS.
- *Конфигурация JNDI:*гибкая схема именования JNDI.
- *Типы развертывания:*Свернутый EAR (война), JAR.
- Поддержка руководства: ActiveMQ JMX-компоненты
- *Поддержка:*Поддержка сообщества, списки рассылки и форумы, контейнер EJB для Apache Geronimo.
- *Поставщик JMS:*ActiveMQ
- *Пул соединений XA:*Да
- *Службы таймера EJB:*Да
- *Поставщики сохраняемости:*OpenJPA, Hibernate.
- *Ограничения:*OpenEJB использует OpenJPA для обеспечения устойчивости JPA и CMP, а для правильной работы OpenJPA в настоящее время требуется JavaAgent.
- *Документация:*ограниченная, но лучше, чем у других
- *EJB 3.1:*частичный
EasyBeans
- *Лицензия:*LGPL
- *Java:*JDK 5.0 или 6.0.
- Интеграция Tomcat:Да
- *Версии Tomcat:*Tomcat 6.x или 5.5.
- *Развертывание в Tomcat:*файл war.
- *Список возможностей:*Поддержка EJB 3.0, JAX-WS, OSGi.
- Конфигурация JNDI:?
- *Типы развертывания:*JAR.
- Поддержка руководства:?
- *Поддержка:*Поддержка сообщества и профессиональная поддержка, список рассылки, JIRA, контейнер EJB для сервера приложений JOnAS.
- Поставщик JMS:?
- Пул соединений XA:?
- *Службы таймера EJB:*Да
- *Поставщики сохраняемости:*OpenJPA, Hibernate, TopLink, EclipseLink.
- Ограничения:
- *Документация:*ограничено
- EJB 3.1: Нет