【问题标题】:CDI and Bean Validation in Java EE 5 Application Server?Java EE 5 应用服务器中的 CDI 和 Bean 验证?
【发布时间】:2011-10-07 09:49:52
【问题描述】:

CDI 和 Bean 验证是 Java EE 6 标准规范。不过,只需将库添加到项目中,我就可以在 Java EE 5 应用程序服务器(以及 Java SE)中同时使用它们。

这对吗?

在 Java EE 5 应用服务器而不是 Java EE 6 应用服务器中同时使用两者有什么缺点吗?

我必须使用 Oracle 11 g Suite 和 JDeveloper。同时,JDeveloper 支持 JSF 2.0,但我找不到任何对 Bean Validation 或 CDI 的支持。然而,这不是问题。没有 IDE 支持(用于代码生成、分步指南或其他),但我可以通过使用简单的 java 编辑器来使用这些库。对吧?

【问题讨论】:

    标签: java jakarta-ee ide java-ee-6 cdi


    【解决方案1】:

    Java EE 6 基本上是一组 API。如果应用服务器实现了所有这些规范,那么它就符合 Java EE 6。但是您仍然可以在符合 Java EE 5 的应用服务器中使用这些 API。有些人甚至将 EJB 放入 Tomcat,所以从技术上讲这是可能的。使用兼容的 AS 仍然有意义,因为它还提供与规范相关的所有服务。

    【讨论】:

      【解决方案2】:

      我相信这是正确的。

      缺点是你落后了一个版本。如果您决定升级到 Java EE 6(例如新导入等),您可能需要修改您的代码

      【讨论】:

        【解决方案3】:

        您可以很容易地将 Apache OpenWebBeans 或 JBoss Weld(从 2 个 CDI 实现中选择一个)添加到您的 WEB-INF/lib 并在您的 web.xml 中手动注册 servlet 侦听器。瞧,那么您就有了 CDI 支持!

        对于 JSR-303 Bean 验证,它有点棘手,因为只有 JPA2 和 JSF2 使用它。因此,您需要将 Myfaces2 和 Hibernate-3.5、EclipseLink2 或 OpenJPA2 添加到本地 jar 并禁用容器提供的变体。

        【讨论】:

          猜你喜欢
          • 2015-07-29
          • 1970-01-01
          • 2018-06-22
          • 2017-04-22
          • 1970-01-01
          • 1970-01-01
          • 2011-10-15
          • 1970-01-01
          • 2014-04-30
          相关资源
          最近更新 更多