Tomcat 7的EJB3.1和JSF问题

时间:2013-04-08 15:04:50

标签: primefaces tomcat7 glassfish-3 ejb-3.1

可以在Tomcat7中执行EJB3.1 POJOS的JSF2 web应用,而无需更改注释@EJB实体和EJB3.1相关代码。

我正在使用PrimeFaces 3.4.x,Eclipselink JPA 2.3,EJB3.1

最后我想在不使用JavaEE6服务器的情况下坚持使用Tomcat7,因为由于内部限制,一些客户无法迁移到新的Java EE服务器。

但我希望本机查询和/或标准查询适用于JPA    像连接(左,外和内连接),插入多个表等。

我使用GlassFish3.1的旅程非常适合使用EJB3.1,Eclipselink JPA的Primefaces CRUD应用程序。

但我无法执行我的应用程序,因为EJB会话bean无法实例化,而无需更改EJB代码。

我正在考虑更改设计和源代码,以便我的应用程序在Tomcat 7和Glassfih3.x中运行。可以避免使用EJB3.1并使用DAO等东西(即使用J2EE模式而不是Java EE6模式)。

UsersController.java的EJB3.1代码片段: -

@EJB

(1)private com.myapp.session.UsersFacade ejbFacade;

(2)private UsersFacade getFacade(){         返回ejbFacade;     }

// validateUser()方法返回一个String。 (3)String ressult = getFacade()。validateUser();

perisistence.xml文件

http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">            JDBC / ABC        假
                                              

3 个答案:

答案 0 :(得分:2)

默认情况下,Tomcat不是EJB容器。为了不失去tomcat的时尚和简单本质,但是要使用基于tomcat的EJB容器,只需使用Apache TomEE,它就可以保存OpenEJB实现,因此可以很好地满足您的需求。

答案 1 :(得分:0)

没有。或者在迁移到Tomcat 7之前重新设计应用程序而不使用EJB。

答案 2 :(得分:0)

tomcat是web容器,可能是tomcat 8会支持java ee 7,但你可以自由使用 Apache Tomee !!!

但是一般来说当你使用tomcat时,使用Spring,如果你喜欢Jboss或glassfish,请使用EJB3