5

我正在尝试使用 Apache CXF 与未知的 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]

这看起来类似于现有的错误。我正在使用 DOSGi singlebundle 1.2,其中包括 cxf-minimal-2.2.9.jar;这意味着该错误应该在我正在使用的版本中修复。jaxb-api 包含在我的 Apache CXF 发行版中,经检查包含 jaxb-xjc。

任何人都可以向我提供一些关于我做错了什么的见解吗?我发誓这曾经有效。

4

3 回答 3

6

“java.lang.ClassNotFoundException: com/sun/tools/”如果您在 IDE 中使用 JRE 而不是 JDK,通常会发生。确保您在 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

另一种解决方案是在 Maven 依赖项中包含 cxf-rt-core。

于 2015-05-26T19:44:01.910 回答