0

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

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

最后我想坚持使用Tomcat7而不使用JavaEE6服务器,因为一些客户由于内部限制无法迁移到新的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) 私有 com.myapp.session.UsersFacade ejbFacade;

(2) private UsersFacade getFacade() { return ejbFacade; }

// validateUser() 方法返回一个字符串。(3) 字符串结果 = getFacade().validateUser();

perisistence.xml 文件

http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">jdbc/ABC false

4

3 回答 3

2

默认情况下,Tomcat 不是 EJB 容器。为了不失去 tomcat 的圆滑和简单的性质,而是拥有一个基于 tomcat 的 EJB 容器,只需使用Apache TomEE,它包含OpenEJB实现,因此可以很好地满足您的需求。

于 2013-04-08T18:56:26.873 回答
0

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

于 2013-04-16T20:21:30.407 回答
0

tomcat 是 web 容器,也许 tomcat 8 会支持 java ee 7,但是你可以免费使用 Apache Tomee !!!

但是一般你用tomcat的时候就用Spring,如果你更喜欢Jboss或者glassfish就用EJB3

于 2013-09-15T11:31:21.147 回答