Подтвердить что ты не робот

CDI на Tomcat 7 - это имеет смысл?

Если я могу выбрать, я использую JBoss 7 для проекта Java EE 6 с использованием JSF 2 и CDI.

Но иногда среда для проекта клиента более или менее установлена ​​- поэтому в одном случае мы ограничены Tomcat (6 или, возможно, 7).

Итак, я прочитал несколько статей об использовании CDI (например, WELD) и JSF 2 в Tomcat, которые показали, что в основном это не проблема.

Тем не менее, мой вопрос - это имеет смысл? Или это контейнер сервлетов, который не является подходящей средой для такой архитектуры? У кого-нибудь есть опыт использования Tomcat + CDI для чего-то большего, чем демонстрационный проект?

Спасибо заранее!

4b9b3361

Ответ 1

Хороший вопрос, в первую очередь:)

Развертывание корпоративного приложения на механизм сервлетов является основным сценарием, например, Spring, так что это, безусловно, возможно. Но вы поймете, что Spring - это целая экосистема API и конфигурационных файлов, а не несколько JAR, которые вы просто загружаете на сервер и получаете удовольствие.

Я немного поиграл с Weld и JSF на Tomcat 7, и все получилось неплохо. Но существует большое различие между HelloWorldOnTomcat.java и реальным приложением для реальных клиентов. Я уверен, что вы об этом знаете.

Я бы сказал, что вы сможете составить достойную настройку за относительно короткое время. Ни CDI, ни JSF не будут проблематичными. Но, в зависимости от ваших конкретных требований, вам придется иметь дело с другими аспектами, которые не покрываются готовым Tomcat. Безопасность, кластеризация, отказ, обмен сообщениями, асинхронность, чтобы назвать несколько проблем (и транзакций, как указано в комментариях).

Если вы (более или менее) владеете такими требованиями, и ваш предстоящий проект довольно расслаблен и не должен контролировать следующую миссию Марса - я бы, конечно же, попробовал.

С другой стороны, если вы знаете о таких требованиях, я бы искал (а) настройку на сервере приложений Java EE или (b) еще один стек на Tomcat.

Ответ 2

Взгляните на Apache Tomee:

Apache TomEE, произносится как "Tommy", - это все-Apache Java EE 6 Web Профиль сертифицирован, где Tomcat - верхняя собака. Apache TomEE - это собранный из ZIP файла Apache Tomcat. Мы начинаем с Tomcat, добавьте наши банки и застегните все остальное. В результате Tomcat добавила EE функции - TomEE.