5

ApacheCXFを使用して不明なWebサービスと通信しようとしています。Apacheのダイナミッククライアントの例に従いました。

    JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
    Client client = factory.createClient(wsdlURL.toExternalForm(), SERVICE_NAME);

これは機能していましたが、createClient()を呼び出すと次の例外が発生します。

    java.lang.IllegalStateException: Unable to create schema compiler
    Caused by:
     javax.xml.bind.JAXBException
     - with linked exception:
     [java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC]

これは既存のバグに似ています。cxf-minimal-2.2.9.jarを含むDOSGiシングルバンドル1.2を使用しています。つまり、使用しているバージョンでバグを修正する必要があります。jaxb-apiは私のApacheCXFディストリビューションに含まれており、検査時にjaxb-xjcが含まれています。

誰かが私が間違っていることについての洞察を私に提供できますか?私はこれが以前は機能していたことを誓います。

4

3 に答える 3

6

「java.lang.ClassNotFoundException:com / sun / tools /」は、JDKではなくIDEでJREを使用する場合によく発生します。必ず、IDEでJDKを使用してください(例:Eclipse)

于 2013-01-18T13:23:51.040 に答える
3
<dependency>
   <groupId>com.sun.xml.bind</groupId>
   <artifactId>jaxb-xjc</artifactId>
   <version>2.2.11</version>
</dependency>

解決された問題

于 2018-01-30T16:47:35.303 に答える
0

もう1つの解決策は、Mavenの依存関係にcxf-rt-coreを含めることです。

于 2015-05-26T19:44:01.910 に答える