我想要一个用maven构建的Java JEE6项目,我想要它标准
因此,我把它放在pom。xml中:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
像这样的一个项目,它应该在每个JEE6兼容的容器(jboss, geronimo, glashfish等)中运行
那么,为什么这个jboss依赖存在?
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<version>3.0.2.Final</version>
<scope>provided</scope>
</dependency>
如果我使用它,我是否绑定到jboss,所以我只能在这个应用程序中使用这个服务器?
总是使用标准javaee-api不是更好吗?
谢谢!
标准api被破坏,即缺少方法体。这在测试时得到证实。我曾经遇到过这个陷阱,并不是很满意。
因此,建议使用另一个包作为参考。
你可以在Adam Biens Blog上仔细看看
如果确实需要,您还可以为不同的部署环境创建概要文件。然而,从本质上讲,我同意,这不是一个很令人愉快的情况。
如果你在测试中遇到问题,你可以看看这个线程。
编辑:
顺便说一下,现在这个可能很有趣。javaee-(web-)api用于Java EE 7 (source)
java-api依赖的第一个解决方案是正确的:在理想情况下,应用程序不应该关心它工作的服务器环境。对于单元测试,您可以使用Arquillian,它可以帮助您在"家里"测试企业bean,而不会让您感到头痛。如果您使用的是jboss-javaee,那么您确定您的应用程序将在jboss以外的其他服务器上部署并正常工作吗?