2011-05-19 142 views
22

這是我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) 
.... 

它是什麼?我錯過了什麼樣的依賴性?

回答

28

您可能擁有來自其他地方的wsdl4j的1.5(或更早版本)版本。 CXF需要1.6.x版本。

編輯:

而且是在尋找這個罐子的軸版本。您可以排除它像這樣:

 <exclusions> 
      <exclusion> 
       <artifactId>axis-wsdl4j</artifactId> 
       <groupId>axis</groupId> 
      </exclusion> 
     </exclusions> 
+0

我不得不使用Axis中造成的悲痛混合遺產WS,添加到它的軸版本有「軸」附加到組ID :( - 感謝這個+1 – javamonkey79 2012-04-27 18:38:25

+1

謝謝@DanielKulp,這節省了我的時間。 – tarrsalah 2014-05-22 17:22:33

2

此依賴關係是wsdl4j-1.6.2.jar,它可能無法通過當前的依賴關係進行傳遞式解析。