Java EE без сервера приложений

Начиная с EJB 3 у нас есть встраиваемые контейнеры EJB, реализации JPA могут использоваться без сервера приложений, существует Сварка для контекстов и внедрение зависимости и так далее. С тех пор во многих системах только доступный Tomcat, интересно, если Java EE мог бы использоваться без сервера приложений, но с контейнером Сервлета как Tomcat.

Что я должен был бы сделать для установки среды Java? Какие недостатки Вы видите?

5
задан deamon 25 March 2010 в 16:25
поделиться

2 ответа

Обычно вам потребуется какой-то контейнер, даже если этот контейнер не предоставляет услуги, связанные с Java EE. В конце концов, вам нужен долгоживущий процесс JVM для размещения кода, который вы выполняете. Tomcat и Jetty прекрасно справятся с этой задачей и в дополнение к базовым сервисам сервлетов предоставят несколько полезных дополнительных функций, например, пул соединений.

1
ответ дан 14 December 2019 в 08:47
поделиться

Если я хорошо понимаю, вы хотите использовать EJB3 / JPA в контейнере сервлетов.

Существуют не только автономные реализации JPA, но также встраиваемый EJB3-контейнер, такой как OpenEJB или встраиваемый контейнер Glassfish . Так что ничто не мешает вам запустить такой встраиваемый контейнер из контейнера сервлета для использования EJB3.

(Примечание: я не знаю всех подробностей о транзакциях. На полномасштабном сервере приложений у вас есть JTA и распределенный диспетчер транзакций. У вас этого нет в контейнере сервлетов, таком как Tomcat. JPA работает с JTA и простым JDBC, но я не знаю точно, как встраиваемый контейнер работает без JTA. Тем не менее, я предполагаю, что это сработает, учитывая, что такие встраиваемые контейнеры также предназначены для модульного тестирования, где, я думаю, нет распределенной транзакции JTA manager.)

Другой подход - использовать Spring. Spring и EJB3 действительно стали очень похожи. Вы можете запустить контейнер Spring DI в контейнере сервлетов и получить более или менее те же возможности, что и EJB3 (декларативные транзакции и т. Д.). См. Этот пост о Spring против EJB3.

Все эти технологии стали довольно модульными, особенно с профилями Java EE. Вы можете использовать Sevlets, EJB3, JMS, JPA, даже JTA как-то независимо друг от друга. Вы также можете создать среду, в которой вы выберете те, которые вам нужны, либо с помощью Spring, либо с Java EE. Вопрос в том, когда это перестает иметь смысл и лучше использовать приложение. сервер со всем доступным и легко управляемым.Я думаю, что Servlet / EJB3 / JPA - это предел, если нужно больше, перейдите к приложению. сервер.

2
ответ дан 14 December 2019 в 08:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: