无法实例化SOAP客户端 - 使用NullPointerException失败

问题描述 投票:0回答:1

在实例化SOAP客户端时,我得到NullPointerException

@WebServiceClient(name = "QWEServiceManager", targetNamespace = "http://external.ws.services.abc.com/", wsdlLocation = "file:/C:/Users/XYZ/Desktop/77777/QWEServiceManagerService.wsdl")
public class QWEServiceManagerService extends Service

当我尝试创建客户端实例来调用SOAP服务时

QWEServiceManagerService serv = new QWEServiceManagerService()

以上抛出

Exception in thread "main" javax.xml.ws.WebServiceException: Unable to createEndpointReference Provider
    at javax.xml.ws.spi.Provider.provider(Provider.java:160)
    at javax.xml.ws.Service.<init>(Service.java:92)
    at QWEServiceManagerService.<init>(QWEServiceManagerService .java:48)
    at WsClient.main(WsClient.java:26)
Caused by: java.lang.NullPointerException
    at javax.xml.ws.spi.Provider.provider(Provider.java:152)
    ... 3 more
java soap jax-ws javax.xml
1个回答
0
投票

问题在于Java停止提供Java 6+以上的默认提供程序实现。

它试图通过以下步骤找到Impl:

  • 首先由服务装载机
  • 来自JDK Properties(来自$ java.home / lib / jaxws.properties)
  • 使用系统属性
  • 使用OSGi服务加载器查找

因此,简单地说,通过提供程序的实现添加依赖项可以解决问题。

对我来说,添加jaxws-rt依赖解决了这个问题。

注意:我遇到了另一个依赖性问题,我确实需要向stax-ex添加另一个依赖项以解决我的所有依赖性问题。

© www.soinside.com 2019 - 2024. All rights reserved.