web-dev-qa-db-ja.com

Apache CXFクライアントの何が問題になっていますか?

これは私のpom.xmlの一部です:

<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>

JAX-WSの実装としてApacheCXFを使用しようとしています。実行されるまで、すべてが正常に機能します(Javaコードはorg.Apache.cxf:cxf-codegen-plugin:2.4.0を使用してWSDLから生成されます)。

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)
....

どんな内容ですか?どのような依存関係を見逃しましたか?

23
yegor256

1.5(またはそれ以前)のバージョンのwsdl4jが別の場所から来ている可能性があります。 CXFには1.6.xバージョンが必要です。

編集:

また、このjarのAxisバージョンにも注意してください。次のように除外できます。

        <exclusions>
            <exclusion>
                <artifactId>axis-wsdl4j</artifactId>
                <groupId>axis</groupId>
            </exclusion>
        </exclusions>
28
Daniel Kulp

この依存関係はwsdl4j-1.6.2.jarであり、現在の依存関係のセットでは推移的に解決されない可能性があります。

2
Biju Kunjummen