我的Apache CXF客户端有什么问题?
问题描述:
这是我pom.xml
部分:我的Apache CXF客户端有什么问题?
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
<scope>runtime</scope>
</dependency>
我尝试使用Apache CXF的JAX-WS的实现。一切工作(通过org.apache.cxf:cxf-codegen-plugin:2.4.0
手段从WSDL生成Java代码)的罚款,直到执行:
java.lang.NoSuchMethodError:
javax.wsdl.xml.WSDLReader.readWSDL(Ljavax/wsdl/xml/WSDLLocator;Lorg/w3c/dom/Element;)Ljavax/wsdl/Definition;
at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:237)
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:186)
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:91)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:203)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147)
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:90)
at javax.xml.ws.Service.<init>(Service.java:56)
....
它是什么?我错过了什么样的依赖性?
答
您可能拥有来自其他地方的wsdl4j的1.5(或更早版本)版本。 CXF需要1.6.x版本。
编辑:
而且是在寻找这个罐子的轴版本。您可以排除它像这样:
<exclusions>
<exclusion>
<artifactId>axis-wsdl4j</artifactId>
<groupId>axis</groupId>
</exclusion>
</exclusions>
答
此依赖关系是wsdl4j-1.6.2.jar,它可能无法通过当前的依赖关系进行传递式解析。
我不得不使用Axis中造成的悲痛混合遗产WS,添加到它的轴版本有“轴”附加到组ID :( - 感谢这个+1 – javamonkey79 2012-04-27 18:38:25
谢谢@DanielKulp,这节省了我的时间。 – tarrsalah 2014-05-22 17:22:33