в чем разница между встроенным контейнером EJB и реальным контейнером сервера

В чем явная разница между встроенными контейнерами EJB и реальными серверными контейнерами, которые используются в производстве.

Я могу найти 2 сценария.

  1. Например. Glassfish-embedded-static-shell.jar — не имеет никакой реализации и зависит от локальной установки сервера Glassfish.
  2. Как и OpenEJB, для которого требуется только добавить банку в путь к классам и не устанавливать как таковую.

Насколько я знаю, оба называются встроенными контейнерами. Итак, каков его реальный смысл?

Кроме того, есть ли у встроенного контейнера все функции, поддерживаемые спецификацией EJB?


person Bala    schedule 11.03.2012    source источник


Ответы (1)


Серверный EJB-контейнер запускается как часть приложения сервера приложений и обычно имеет более глубокую интеграцию с другими службами и технологиями, включенными в сервер приложений. Встраиваемый контейнер EJB запускается вашим приложением, когда вы получаете управление (например, потому что у вашего класса есть метод main, и вы хотите иметь EJB). По этой причине встраиваемый контейнер EJB удобен для модульного тестирования.

Встраиваемый контейнер EJB может, но не обязан, иметь все функции, поддерживаемые спецификацией EJB. В таблице 27 (раздел 21.1) спецификации EJB 3.1 перечислены функции, необходимые для встраиваемого контейнера EJB. В частности, встраиваемый контейнер EJB не обязан поддерживать:

  • Удаленные EJB (как клиент или как сервер).
  • Веб-сервисы
  • Таймеры
  • MDB и Entity bean-компоненты
person Brett Kail    schedule 11.03.2012