为什么我们需要以下 jboss jar 用于 Wildfly 中的 EJB 3.2?

Why do we need the following jboss jar for EJB 3.2 in Wildfly?

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

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

我们是否有专为 Wildfly 定制的类似产品?

实际上,您只需要这个 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>

最后,必须使用 "provided" 范围声明此 Maven 依赖项,因为您的包中不需要它。事实上,它已经由 Wildfly 提供,如本文档中所述:Implicit module dependencies for deployments