我是轴新手,请耐心等待。 我从WSDL端点生成了java文件,每个java文件都有
implements org.apache.axis2.databinding.ADBBean{
这意味着我需要在编译范围内的maven pom.xml中具有axis2.jar的依赖关系(如果我错了,请纠正我)。
但是,axis2.jar依赖项也会下载很多geronimo文件。但我正在使用JBOSS。我实际上并不想在我的战争中使用geronimo文件。
这是否真的有必要拥有这些 geronimo 罐子?或者在pom.xml中指定axis2.jar编译时依赖项时,我可能做错了什么?
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-api</artifactId>
<version>1.2.14</version>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-impl</artifactId>
<version>1.2.14</version>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.schema</groupId>
<artifactId>XmlSchema</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.neethi</groupId>
<artifactId>neethi</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
答案 0 :(得分:3)
事实上,免费在线图书“Maven:The Complete Reference”在其"Conflict Resolution"
部分描述了您的确切案例您所依赖的Apache Axis2库实现了Java EE规范的一部分,因此在Geronimo“Java EE Spec”库上具有编译范围传递依赖性。这些规范库仅实现Java EE标准。所以,如果你检查(例如)
的内容 jar -tf geronimo-javamail_1.4_spec-1.7.1.jar
你会发现(除其他外)。
javax/
javax/mail/
javax/mail/Address.class
javax/mail/AuthenticationFailedException.class
javax/mail/Authenticator.class
(etc.)
因此,使用您的应用程序部署这些Geronimo jar应该没有任何害处,但如果它真的困扰您(或者如果您确实遇到问题),则可以使用<exclusions>
排除传递依赖性块:
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-api</artifactId>
<version>1.2.14</version>
<exclusions>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-activation_1.1_spec</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-javamail_1.4_spec</artifactId>
</exclusion>
</exclusions>
</dependency>
JBoss发布了自己的规格罐,但除非遇到实际问题,否则你不应该费心去除排除geronimo Jars的麻烦。
或者,如果您确定知道这是您的部署容器,则可以考虑使用JBoss Web Services。