我们可以在Apache tomcat中使用@EJB注释吗?

时间:2011-05-20 05:35:38

标签: java jsf tomcat ejb

我们可以在Apache tomcat中使用@EJB注释吗?

如果我们可以在Apache tomcat中使用@EJB注释,请告诉我服务类中必须有哪些属性和方法,如this link中提出的问题答案中的EmployeeService类。

3 个答案:

答案 0 :(得分:4)

不,Tomcat不是EJB容器。只有Glassfish 3,JBoss AS 6等。对于Tomcat,您必须单独安装它。链接的答案只是一个基本的启动示例。没有EJB,你可以做得很好。您只需要在bean的初始化,构造或后期构建期间自己创建它。 E.g。

private UserService userService = new UserService();

private UserService userService = ServiceFactory.getUserService();

请注意,这不是现有代码。这只是你必须自己编写的代码。它包含的只是执行所有数据库交互任务的方法。在支持EJB的容器中,您可以使用JPA。但是在像Tomcat这样的简单servlet容器上,你需要很好的用于此的JDBC。您可以在this blog中找到基本JDBC DAO的大量启动示例。

答案 1 :(得分:2)

截至2011年10月,Apache确实有Java EE certified version of Tomcat

认证版本名为Apache TomEE,是一个简单的Tomcat zip文件,添加了正确的jar文件,以便它可以传递Java EE 6 Web Profile TCK。

所以你可以在Tomcat中使用EJB,JSF,JPA等,就像在Apache提供的Tomcat版本上使用GlassFish,JBoss等一样。

答案 2 :(得分:0)

Apache是​​一个servlet容器,它只是Java EE规范的一部分。一旦找到,将跳过@EJB注释,Tomcat不会进行注射。如果您希望servlet调用EJB方法,则需要在servlet启动时进行JNDI查找,并将远程接口类放在servlet的类路径中。