2012-10-23 46 views
4

我尝试使用Apache CXF跟一个未知的Web服务。我遵循Apache的Dynamic Client example的Apache CXF动态客户创造

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-最小-2.2.9.jar;这意味着该错误应该在我使用的版本中修复。在JAXB的API包含在其中经检验含有JAXB的XJC我的Apache CXF分布。

任何人都可以给我提供一些见解,以我在做什么错?我发誓这曾经工作。

回答

5

“抛出java.lang.ClassNotFoundException:COM /阳光/工具/” 往往是,如果你在JDK中的IDE这一翻译使用JRE发生。 请确保您在IDE中使用JDK(例如eclipse)

+0

完全正确!这对我有效 –

0

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

0
<dependency> 
    <groupId>com.sun.xml.bind</groupId> 
    <artifactId>jaxb-xjc</artifactId> 
    <version>2.2.11</version> 
</dependency> 

解决问题