为什么在Wildfly中使用EJB 3.2需要以下jboss jar文件?

3
这可能是一个愚蠢的问题,但我有一个疑问:为什么我们需要以下依赖项才能在Wildfly中运行EJB?
<dependency>
    <groupId>org.jboss.spec.javax.ejb</groupId>
    <artifactId>jboss-ejb-api_3.2_spec</artifactId>
    <scope>provided</scope>
</dependency>

我们是否有类似于针对Wildfly定制的东西呢?

2
要编译与EJB相关的代码吗?实际上你可能并不需要,你可以包含javaee7 API依赖项,然后编译所有JavaEE相关的内容。 - Gimby
@Gimby 是的。现在它能够编译和运行良好。但是为什么我们要使用jboss规范?我们是否有适用于Wildfly的定制内容? - Pritam Banerjee
1
我不确定,但根据我的经验,JBoss/Red Hat 有一个习惯,就是将所有规范都包含在他们自己的依赖项中,这样他们就可以通过一个父依赖项/材料清单提供所有东西。 - Gimby
@Gimby 好的。我在他们的网站上没有找到具体的信息。也许我需要再谷歌一下。 - Pritam Banerjee
1个回答

5
实际上,你只需要这个maven依赖项,这样你的代码就可以在maven编译阶段成功编译。例如,它提供了EJB注释,如@Stateless。
我曾经为我的Java EE 7项目声明过这个maven依赖项,以便整个JEE规范都可用:
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>

最后,这个Maven依赖项必须使用“provided”范围声明,因为你不需要它在你的包中。实际上,它已经被Wildfly提供了,就像这份文档所描述的那样:部署的隐式模块依赖关系

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接