java - WSDServiceFactory 中的空指针异常 - Apache CXF 库

标签 java web-services cxf webservice-client

我的代码有问题。 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/

相关文章:

Apache CXF + JavaFX 未找到命名空间的管道启动器

尝试在 gridview 中显示图像时出现 java.lang.outofmemoryerror 异常

java.sql.SQLException :[SQLITE_ERROR] SQL error or missing database (near "=":syntax error) 异常

java - SpringMVC REST Web 服务

php - 同步网络服务方法论或论文

java - 增加 CXF OneWayProcessorInterceptor 中的执行程序队列大小

java - 改变骰子的眼睛

Java 扫描仪的工作原理

web-services - POST xml 无效时更正 HTTP 状态代码?

java - 通过 CXF 拦截器的 HTTP 基本身份验证不起作用