我的代码有问题。 WSDL 文件由来自 apache cxf 的 wsdl2java 解析。现在我正在尝试与 Web 服务建立连接,但仍然遇到空指针异常。
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 文件的位置。为了构建 jar,我使用 Maven 和依赖项,例如:
- jaxws-api
- cxf-rt-transports-http
- cxf-rt-frontend-jaxws
- cxf-rt-bindings-soap
带有 deps 的 jar 是由 maven-assemble-plugin 创建的
可以肯定 wsdl 文件存在,因为它是从那里下载的。
有什么建议吗?感谢您的帮助。
顺便说一句。这不是重复的问题,我发现任何解决方案都不适合我。最佳答案
我在 gradle 中使用 shadowJar 遇到了同样的问题。解决方案是显式合并 META-INF/cxf/目录中的 bus-extensions.txt 服务文件:
shadowJar {
archiveName = 'application.jar'
mergeServiceFiles{
path='META-INF/cxf'
}
}
关于java - WSDServiceFactory 中的空指针异常 - Apache CXF 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11428311/