【问题标题】:Can we use @EJB annotation in Apache tomcat [duplicate]我们可以在Apache tomcat中使用@EJB注释吗?
【发布时间】:2011-05-20 05:35:37
【问题描述】:

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

如果我们可以在Apache tomcat中使用@EJB注解,那么请在this link上的问题的回答中告诉我,像EmployeeService类这样的服务类中必须有什么样的属性和方法。

【问题讨论】:

    标签: java jsf tomcat ejb


    【解决方案1】:

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

    private UserService userService = new UserService();
    

    private UserService userService = ServiceFactory.getUserService();
    

    等等

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

    【讨论】:

      【解决方案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 等一样。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-04-27
          • 1970-01-01
          • 2011-10-14
          • 1970-01-01
          • 1970-01-01
          • 2012-12-31
          • 2012-08-03
          相关资源
          最近更新 更多