【问题标题】:Why do we need the following jboss jar for EJB 3.2 in Wildfly?为什么我们在 Wildfly 中需要以下用于 EJB 3.2 的 jboss jar?
【发布时间】:2017-03-20 14:10:37
【问题描述】:

这可能是一个愚蠢的问题。但是我有一个疑问,为什么我们需要以下依赖才能在 Wildfly 中运行 EJB?

<dependency>
    <groupId>org.jboss.spec.javax.ejb</groupId>
    <artifactId>jboss-ejb-api_3.2_spec</artifactId>
    <scope>provided</scope>
</dependency>

我们是否有类似的东西是专门为 Wildfly 定制的?

【问题讨论】:

  • 能够编译EJB相关代码?您可能并不真正需要它,您可以包含 javaee7 API 依赖项并编译所有与 JavaEE 相关的内容。
  • @Gimby 是的。现在它编译并运行良好。但是我们为什么要使用 jboss 规范呢?我们有为 Wildfly 定制的东西吗?
  • 我不知道,但根据我的经验,JBoss/Red Hat 习惯将所有规范包含在他们自己的依赖项中,这样他们就可以为所有东西和厨房水槽提供一个父依赖项/材料清单.
  • @Gimby 好的。我在他们的网站上没有找到任何具体的东西。可能我需要多谷歌一下。

标签: java maven jboss ejb wildfly-10


【解决方案1】:

实际上,您只需要这个 maven 依赖项,这样您的代码就可以在 maven 编译阶段成功编译。比如@Stateless等EJB注解就是由它提供的。

我使用为我的 Java EE 7 项目声明此 maven 依赖项,因此所有 JEE 规范都可用:

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>

最后,这个 maven 依赖项必须在“提供”范围内声明,因为您的包中不需要它。实际上,它已经由 Wildfly 提供,如本文档中所述:Implicit module dependencies for deployments

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    相关资源
    最近更新 更多