Контейнер EJB находится на всех серверах приложений. Контейнер EJB в глубине

Я новичок в EJB. Из всего чтения и поиска, которые я сделал до сих пор, я понял следующее:

  • EJB-это компоненты, в которых записывается и поддерживается бизнес-логика приложений.
  • все EJB помещаются во что-то, называемое контейнером EJB.
  • контейнер EJB-это не что иное, как программа на стороне сервера, написанная для управления EJB и обеспечения основных функций, которые должны предоставляться EJB(viz, transaction управление, безопасность, столкновение освобождают envt, etc).

1) я сомневаюсь, что так называемый компонент EJB находится на всех серверах приложений?

2) когда мы говорим EJB 2.1/3.0/3.1, означает ли это, что выпущена новая версия контейнера EJB?

3) контейнер EJB также находится на веб-серверах?

спасибо.

2 ответов


ответить

  1. вообще да. Сервер приложений обычно называют сервером с контейнером EJB, таким как Glassfish, Jboss и т. д. Но вам нужно убедиться, что сервер приложений имеет поддержку EJB.

  2. да

  3. нет. Веб-серверы или веб-контейнеры (Tomcat, Jetty и т. д. ) служат другой цели, чем контейнер EJB. Но все серверы приложений имеют веб-серверы (наряду с EJB стеклотара. ).

сервер контейнера EJB и веб-контейнера (серверов) - это разные уровни в сценарии приложения Java EE . Проверка этой ссылке для получения дополнительной информации.


вы правильно поняли идею EJB.

  1. да и нет. Зависит от того, что вы понимаете как "сервер приложений" (двусмысленность описал ниже в ответе 3.)

  2. когда вы говорите EJB 2.x / 3.0 / 3.1 или так далее, вы ссылаетесь на конкретную спецификацию EJB, что означает, что вы ссылаетесь на набор сервисов эта версия поддерживает. Другими словами - да, это означает, что контейнер EJB должно быть в заданной версии.
    Сначала выпускается спецификация (вы можете увидеть черновики версий, проголосовать за новые функции и в основном участвовать в этом процессе). Затем пишется ссылочная реализация (RI), чтобы показать, что она "выполнима", и вы можете использовать ее сразу. Затем различные поставщики могут предоставить свои собственные контейнеры EJB, которые должны соответствовать конкретной спецификации EJB.

  3. есть несколько различных терминов, которые вам нужно знать. Просто будьте уверены, мы говорим об одном и том же:

    • веб-сервер является сервером HTTP/HTTPS, как Apache HTTP Server, который обслуживает запросы клиентов. Этот термин связан не только с Java EE.
    • веб-контейнер-это термин Java EE, который может означать несколько вещей, но обычно он относится к контейнеру сервлетов и, скажем, контейнеру JSP. Эти контейнеры обслуживают веб-клиентов, поэтому это web контейнер. Как правило, веб-контейнер имеет веб-сервер внутри него (как в случае котяра.) Однако вы можете настроить его так, чтобы статические ресурсы были сервером только чистым веб-сервером, а динамический контент (ваше Java-приложение, сервлеты, JSP и т. д.) будет сервером вашего веб-контейнера.
    • сервер приложений-это расплывчатое название. В мире Java EE purists это может означать только такой сервер, который предоставляет все службы Java EE. Не-Java EE пуристы лечит сервер приложений как произвольный сервер, который состоит из вашего приложения. Согласно этому определению, вы можете вызвать Tomcat (веб-контейнер и веб-сервер)сервер приложений.

Как вы видите, словарь не острый, так как одна вещь может означать несколько немного разных вещей. Более того, начиная с Java EE 6 у нас есть профили. Это означает, что сервер приложений Java EE может соответствовать веб-профилю или полному профилю. Таким образом, только сервер веб-профиля следует рассматривать как сервер приложений.

просто как резюме - вы можете использовать контейнер EJB в веб-контейнере. Взгляните на в большинстве случаев или в основном в project TomEE.