2013-04-08 2 views
0

Может ли JSF2 использовать веб-приложение с EJB3.1 POJOS в Tomcat7 без изменения аннотаций @EJB-сущности и связанного с EJB3.1 кода.Проблема с EJB3.1 и JSF с Tomcat 7

Я использую PrimeFaces 3.4.x, EclipseLink JPA 2.3, EJB3.1

И, наконец, я хотел бы придерживаться Tomcat7 без использования сервера JavaEE6, потому что некоторые клиенты не могут мигрировать на новые серверы Java EE из-за внутренние ограничения.

Но я хочу родные запросы и/или критерии запросов хорошо работает с JPA нравится присоединяется (слева, внешняя, & внутренние соединения), вставьте в нескольких таблицах и т.д.

Мое путешествие с GlassFish3.1 было довольно хорошо с применением примитивов CRUD с EJB3.1, Eclipselink JPA.

Но я не смог выполнить мое приложение, потому что компонент сеанса EJB не смог создать экземпляр, не изменяя код EJB.

Я собираюсь изменить дизайн и исходный код, чтобы мое приложение запускалось в Tomcat 7 и Glassfih3.x. Возможно, следует избегать EJB3.1 и использовать что-то вроде DAO и т. Д. (Т. Е. Пойти с шаблоном J2EE вместо шаблона Java EE6).

EJB3.1 фрагмент кода UsersController.java:-

@EJB

(1) частные com.myapp.session.UsersFacade ejbFacade;

(2) частные пользователиFacade getFacade() { return ejbFacade; }

// validateUser() возвращает строку. (3) Строка ressult = getFacade(). ValidateUser();

perisistence.xml файл

http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd "> JDBC/ABC ложные

+1

Tomcat не может непосредственно выполнять EJB. См. Http: // stackoverflow.com/questions/4304757/how-to-deploy-ejb-3-or-web-application-on-tomcat – nsumer

+0

nsumer, вам не следует избегать Tomcat по многим причинам, и одна из них может быть общей политикой организации. Я понимаю выполнимость с Glassfish и как студенческий проект, вы можете легко перейти к Glassfish. Полагаю, вы понимаете мою точку зрения. –

ответ

0

No. Или Редизайн приложения без использования EJBs перед переносом на Tomcat 7.

+0

EJB3.1 может быть легким, но зависит от контейнера. Мы можем развернуть файл WAR приложения на других серверах, сертифицированных на Java EE6, таких как JBOSS, Weblogic, WebSphere. –

2

Tomcat по умолчанию не является контейнером EJB. Чтобы не потерять гладкий и простой характер tomcat, но иметь tomcat основанный на EJB-контейнере, просто используйте Apache TomEE, он содержит реализацию OpenEJB и, следовательно, будет хорошо служить вам.

+0

Maggu, True, но я должен придерживаться Tomcat, потому что производственная среда - Tomcat 7. –

+0

Maggu, поддерживает ли Tomy указанные запросы JPA? И я не могу избежать tomcat, пока производственная среда не использует Tomcat 7. Я понимаю, что TomEE является сертифицированным Java EE. –

+0

Maggu, Не могли бы вы сказать мне, что приложение, разработанное с использованием EJB3.1, Eclipselink JPA может быть легко перенесено в TomEE без изменения исходного кода? –

0

кот является веб-контейнер, может быть 8 кот будет поддерживать Java EE 7, но вы можете использовать Apache Tomee !! !

Но в целом, когда вы используете Tomcat, использовать Spring, если вы предпочитаете JBoss или GlassFish, использование EJB3