Стек Jetty 8 + EJB 3.1 + JTA + CDI + JPA 2?

Может ли кто-нибудь сказать мне, возможно ли в настоящее время «склеить» частичный веб-профиль Java EE 6 через Jetty? Я нашел много статей об интеграции автономных контейнеров EJB 3, провайдеров JTA и т. д. со старыми версиями Jetty, поэтому мне не терпится заставить все это работать вместе. Я хотел бы собрать Servlet 3.0 + CDI + EJB 3.1 + JTA (если необходимо, все, что мне действительно нужно, это декларативное управление транзакциями) + среду JPA 2 поверх Jetty 8 (или Tomcat 7, если альтернативы Jetty недоступны). Мои вопросы: можно ли это сделать? Кому-нибудь удалось это сделать? Какие-нибудь статьи о совместной работе OpenEJB, Atomikos, Weld, EclipseLink и Jetty (или любого другого подобного стека)? Какие-нибудь волшебные файлы pom.xml «сделай все»?

PS: Да, я знаю, что мог бы просто использовать GlassFish (который мне очень нравится). Мне просто интересно, насколько сложно было бы заставить что-то подобное работать с контейнером сервлетов, и как эти две среды будут сравниваться с точки зрения сложности, производительности, размера, скорости развертывания, потребления аппаратных ресурсов и т. д.


person Anthony Accioly    schedule 15.04.2011    source источник
comment
@AmanicA, спасибо за редактирование тегов, надеюсь, это привлечет больше внимания к посту.   -  person Anthony Accioly    schedule 01.05.2011
comment
Мы находимся в процессе сертификации Apache TomEE (упомянутого ниже) в проекте OpenEJB. Когда это будет сделано, мы надеемся также создать стек Jetty и назвать его Apache JetSet. На самом деле это уже началось, если вы хотите взломать его и стать частью того, чтобы донести это до мира, отлично! Чем больше тем лучше! :) Просто скажите привет в списке [email protected]. Большая часть проекта — это просто разработчики, которые используют этот материал на работе и создают платформы, которые они хотят использовать. На самом деле мы стремимся к тому, чтобы версия Jetty была полностью встраиваемой, в отличие от версии Tomcat.   -  person David Blevins    schedule 03.05.2011


Ответы (4)


Я бы описал это как все еще на ранних стадиях, но вот что у нас есть на данный момент:

http://svn.apache.org/repos/asf/openejb/trunk/openejb3/assembly/openejb-jetty/

Обратите внимание, что Apache TomEE живет по тому же пути, то есть «сборка/openejb-tomcat». План состоит в том, чтобы назвать версию Jetty Apache JetSet и сделать ее полностью встраиваемой. Большинство людей с фиксацией в настоящее время работают над тем, чтобы Apache TomEE был официально сертифицирован для веб-профиля Java EE 6. Я бы описал, что эта работа находится на поздних стадиях. У нас есть отличная настройка в Amazon EC2 для запуска веб-профиля TCK против TomEE с использованием сотни спотовых инстансов EC2 t1.micro. Это довольно мило. Соглашение TCK с Apache и Oracle не позволяет нам предоставлять открытый доступ. Однако любой коммиттер Apache может подписать соглашение о неразглашении, чтобы получить доступ.

Итак, я упоминаю все это о TomEE, потому что план состоит в том, чтобы после того, как мы закончим с версией Tomcat, снова сделать это с Jetty (JetSet). Многие из нас, коммиттеров, например я и Джонатан Галлимор, на самом деле предпочитают Jetty с большим отрывом. Но так как код интеграции Tomcat был намного дальше и у него было больше пользователей, мы решили сначала закончить его. Существует невероятное количество работы, не относящейся к Tomcat, которую мы сможем использовать в версии Jetty; получение доступа к TCK на законных основаниях, куча кода для его запуска, еще больше кучи кода для его автоматизации и многочисленные биты интеграции, которые являются общими и не специфичными для Tomcat.

Тем не менее, нет никаких причин, по которым другим нужно ждать, чтобы начать работу над версией Jetty, только потому, что большинство из нас все еще заканчивает версию Tomcat. Проекты Apache следует рассматривать как отдельные лица, работающие вместе, а не такие компании, как Oracle, Redhat или VMWare. Это может быть как хорошо, так и плохо. Хорошая часть заключается в том, что если вы или кто-либо еще хотите взломать версию Jetty, вы можете сделать это прямо сейчас. Вам придется отправлять патчи некоторое время, пока вы не заработаете коммит, но если кто-то другой сделает реальную команду коммита, это не так уж плохо. Если вы начинаете с малого и остаетесь активным и открытым, обычно довольно легко получить коммит. Ключом к быстрому выпуску исправлений является постоянный поток небольших и средних исправлений. Любой шаг вперед или в сторону без шагов назад, на мой взгляд, является хорошей заплатой. Пока люди могут видеть, куда вы идете, этого достаточно. Определенно более Agile, чем подход с одним большим патчем, и позволяет всем действительно веселым и совместным волшебствам происходить на этом пути.

Некоторые потоки, которые были бы хорошими местами, чтобы сказать привет. Шаг 1 — просто поздороваться. Не нужно иметь код под рукой, чтобы говорить о списке разработчиков или воспринимать его всерьез:

http://openejb.979440.n4.nabble.com/Jetty-Integration-td1457408.html http://openejb.979440.n4.nabble.com/Jetty-Integration-td2318962.html

person David Blevins    schedule 03.05.2011
comment
Дэвид, большое спасибо, я пока буду следить за прогрессом, и как только у меня будет свободное время, я постараюсь представить несколько небольших патчей. Ваше здоровье. - person Anthony Accioly; 04.05.2011

У Tomcat этот стек реализован на сервере под названием TomEE (ранее TomTom).

Это компоненты, которые он использует.

Connector    Apache Geronimo Connector
CDI  Apache OpenWebBeans
EJB  Apache OpenEJB
Javamail     Apache Geronimo JavaMail
JPA  Apache OpenJPA
JSF  Apache MyFaces
JSP  Apache Tomcat
JSTL     Apache Tomcat
JTA  Apache Geronimo Transaction
Servlet  Apache Tomcat

Что касается пристани, я не уверен. OpenEJB - ваш единственный вариант для EJB за пределами контейнера JavaEE6 (AFAIK), и я не уверен, что Jetty на 100% протестирована с этим. Для CDI вы всегда можете использовать что-то вроде Seam.

На мой взгляд, я считаю, что среда Spring будет вашим лучшим вариантом для контейнера Jetty (хотя это только мое мнение). По моему опыту после попытки заставить Tomcat работать с Open EJB, настроить Spring намного проще.

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

Также Open EJB не тестировался на Tomcat 7. Так что вам придется остаться с Tomcat 6, если вы идете по этому пути.

person Drew H    schedule 27.04.2011
comment
Прохладный. Я проверю ТомТом. Помимо Open EJB я нашел несколько ссылок на EasyBeans. Spring + AOP Transactions — хорошая альтернатива стеку. - person Anthony Accioly; 27.04.2011
comment
В любом случае, мне просто было интересно собрать альтернативный стек веб-профилей Java EE 6 и посмотреть, как он будет сравниваться со GlassFish с точки зрения времени обработки, накладных расходов на контейнер, производительности и т. д. Я всегда был большим поклонником Jetty. для развивающихся сред. - person Anthony Accioly; 27.04.2011
comment
Спасибо, что указали на EasyBeans. Я не слышал об этом раньше. Я обязательно это проверю. На самом деле мне было бы очень интересно узнать ваши результаты, потому что Jetty и Tomcat намного легче, чем Glassfish из того, что я видел, но они просто контейнеры сервлетов. Мы используем Glassfish 2 и 3 дома в моей компании, но я всегда ищу способы заставить все работать в Tomcat. Специально для подработок делаю. Я использую виртуальный хостинг Tomcat на стороне, потому что это намного дешевле, чем решение VPS с Glassfish. Поэтому я обычно застреваю на Spring. - person Drew H; 27.04.2011
comment
Обратите внимание, что OpenEJB имеет полную поддержку EJB 3.1 в магистрали, просто он еще не сертифицирован. Мы надеемся, что сможем объявить о сертификации Apache TomEE и Apache Geronimo в следующем квартале. Обратите внимание на EasyBeans, обязательно проверьте его, но также обратите внимание, что он также не сертифицирован. - person David Blevins; 03.05.2011

OpenEjb не выпустил версию с поддержкой JPA2, хотя их версия для разработки поддерживает JPA2, насколько мне известно. Я использую встроенный OpenEjb в Jetty6, потому что пока не могу заставить свое приложение работать на более новых причалах. Я думаю, что ведется работа по тесной интеграции OpenEJB с Jetty, как TomEE, но это может быть еще далеко.

person AmanicA    schedule 29.04.2011
comment
Да, я также застрял со стеком Jetty (7) + Spring + Hibernate 3.5. Я также близко следую дорожной карте Jetty 8. Я единственный сумасшедший, который преследует веб-профиль Франкенштейна? Я имею в виду, что Java EE 6 и Glassfish существуют уже некоторое время. Я был почти уверен, что для облегченного стека веб-профилей найдется архетип волшебного файла pom/maven. - person Anthony Accioly; 30.04.2011
comment
Обновление статуса на JPA2. В начале марта мы взяли версию 3.1.x, разветвили ее и объединили поддержку JPA2 из магистрали. Дела идут хорошо, и мы надеемся, что эта новая ветка под названием 3.2 будет выставлена ​​на голосование через неделю или две. Обратите внимание, ствол теперь называется 4.0. Спасибо Тиаго Веронези за всю эту прекрасную работу. Другой пользователь стал коммиттером. - person David Blevins; 04.05.2011

Geronimo — это полный стек J2EE который проходит поверх пристани.

Документ по его настройке есть на https://cwiki.apache.org/GMOxDOC30/configuring-virtual-host-in-jetty.html

person Quartz    schedule 26.01.2012
comment
Документ не найден :) - person Adelin; 05.11.2013