可以在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
假
答案 0 :(得分:2)
默认情况下,Tomcat不是EJB容器。为了不失去tomcat的时尚和简单本质,但是要使用基于tomcat的EJB容器,只需使用Apache TomEE,它就可以保存OpenEJB实现,因此可以很好地满足您的需求。
答案 1 :(得分:0)
没有。或者在迁移到Tomcat 7之前重新设计应用程序而不使用EJB。
答案 2 :(得分:0)
但是一般来说当你使用tomcat时,使用Spring,如果你喜欢Jboss或glassfish,请使用EJB3