Выбор встроенного контейнера EJB 3.x для запуска приложения Java EE 5 на Tomcat - PullRequest
5 голосов
/ 04 февраля 2009

Заранее прошу прощения, если мой вопрос звучит слишком обобщенно - я делаю все предварительные исследования сам, но ничто не заменит реального опыта ...

Моя цель - перенести унаследованное приложение Java EE (pre-EJB 3.x) на Tomcat со встроенным контейнером EJB. Мой выбор в настоящее время выглядит следующим образом:

  • JBoss Embeddable EJB
  • Apache OpenEJB
  • Консорциум OW2 EasyBeans
  • что-нибудь еще?

Я ожидаю использовать JMS (с MDB), сессионные компоненты (с состоянием и без состояния), JPA, и я очень рад использованию JSF с Seam.

Теперь, учитывая приведенный выше выбор, есть ли преимущества в использовании того или иного встроенного EJB-провайдера?

1 Ответ

6 голосов
/ 01 марта 2009

Ниже приведены результаты моей домашней работы - надеюсь, кто-то найдет этот анализ встроенных EJB-провайдеров полезным при принятии решения о том, какой контейнер использовать, и какой.

Я пошел с Apache OpenEJB, поскольку он предлагает богатый набор функций, частично поддерживает EJB 3.1 и выглядит как наиболее активное и хорошо округленное предложение.

Как обычно, какой продукт должен работать лучше для вас, зависит от ваших реальных требований, целей и среды.

Встроенный JBoss

  • Лицензия : LGPL
  • Java : JDK 5.0
  • Интеграция Tomcat : Да, изменение в server.xml
  • Tomcat Versions : 5.0 и выше (?)
  • Развертывание в Tomcat : Embedded war
  • Список функций : JNDI (локальный), JBoss TS, JBoss Messaging, JCA, JNDI, EJB, JPA, местный TX источник данных / пул соединений, EJB Конфигурация безопасности JNDI: переопределяет JNDI Tomcat реализация путем наложения на себя вершина создания JNDI Tomcat; Tomcat JNDI доступен только для чтения
  • Типы развертывания : только JAR
  • Поддержка управления : Нет
  • Поддержка : ограниченная, встроенная в верхнюю часть Микроконтейнер JBoss, являющийся ядром JBoss 5.0, поддерживаемая опция для Шов на Tomcat
  • JMS-провайдер : те же файлы конфигурации, что и в JBoss 5.x. JMS настроен в hsqldb-persistence-service.xml, и это можно настроить для работы с другие базы данных
  • Пул подключений XA : Нет
  • Службы таймера EJB : Нет
  • * Постоянные провайдеры: * Hibernate
  • Ограничения : нет удаленного JMS; только локальные интерфейсы; только для местных JBoss Реализация JNDI
  • Документация : ограничено
  • EJB 3.1 : Нет

Apache OpenEJB 3.1

  • Лицензия: Лицензия Apache
  • * Java: * JDK 5.0 или 6.0
  • Интеграция Tomcat : Да, изменения в сценарии запуска оболочки
  • * Версии Tomcat: * Tomcat 6.x или 5.5
  • * Развертывание в Tomcat: * файл войны
  • * Список функций: * 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 mbeans
  • * Поддержка: * Поддержка сообщества, списки рассылки и форумы, 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: * файл войны
  • * Список функций: * EJB 3.0, JAX-WS, поддержка OSGi
  • JNDI-конфигурация: ?
  • * Типы развертывания: * JAR
  • Поддержка управления: ?
  • * Поддержка: * Поддержка сообщества и профессиональная поддержка, список рассылки, JIRA, контейнер EJB для сервера приложений JOnAS
  • JMS-провайдер: ?
  • Пул соединений XA: ?
  • * Услуги таймера EJB: * Да
  • * Поставщики постоянства: * OpenJPA, Hibernate, TopLink, EclipseLink
  • Ограничения:
  • * Документация: * ограниченный
  • EJB 3.1: Нет
...