2012-07-11 36 views
1

我的代码存在问题。 WSDL文件由apache cxf的wsdl2java解析。现在我试图获得与Web服务的连接,但仍然收到空指针异常。WSDServiceFactory中的空指针异常 - Apache CXF库

Exception in thread "main" java.lang.NullPointerException 
     at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:92) 
     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:97) 
     at javax.xml.ws.Service.<init>(Service.java:56)... 

url地址指向我已经下载了WSDL文件的地方。为构建罐子我使用Maven与相关性,如:

  • JAXWS-API
  • CXF-RT-运输-HTTP
  • CXF-RT-前端-JAXWS
  • CXF-RT-绑定-soap

罐子DEPS由Maven的组装插件

创建可以肯定的,因为它已经从那里下载的WSDL文件存在那里。

有什么建议吗?谢谢你的帮助。

顺便说一句。这不是重复的问题,我发现的解决方案不适合我。

回答

1

解决方案非常简单,我只是将Apache CXF lib的版本更改为旧版本,并且它可以工作。所以可能我在配置中遇到了问题,或者Apache CXF有一个错误。

因此,作为解决方案,只需检查提供的lib的旧版本。

0

我遇到了同样的问题,使用shadowJargradle。解决方案是明确合并bus-extensions.txt服务文件在META-INF/cxf /目录中:

shadowJar { 
    archiveName = 'application.jar' 
    mergeServiceFiles{ 
    path='META-INF/cxf' 
    } 
}