【问题标题】:Apache CXF Dynamic Client creationApache CXF 动态客户端创建
【发布时间】:2018-01-31 00:47:35
【问题描述】:

我正在尝试使用 Apache CXF 与未知的 Web 服务通信。我关注了来自 Apache 的Dynamic Client example

    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]

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

谁能告诉我我做错了什么?我发誓这曾经有效。

【问题讨论】:

    标签: java cxf


    【解决方案1】:

    “java.lang.ClassNotFoundException: com/sun/tools/”如果您在 IDE 而非 JDK 中使用 JRE,通常会发生。 确保您在 IDE 中使用 JDK(例如 eclipse)

    【讨论】:

      【解决方案2】:
      <dependency>
         <groupId>com.sun.xml.bind</groupId>
         <artifactId>jaxb-xjc</artifactId>
         <version>2.2.11</version>
      </dependency>
      

      已解决的问题

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-12-12
          • 2017-06-13
          • 2015-09-07
          • 1970-01-01
          • 2017-02-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多