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

时间:2019-04-16 18:03:10

标签: java soap jax-ws javax.xml

实例化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

1 个答案:

答案 0 :(得分:0)

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

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

  • 首先通过服务加载程序
  • 来自JDK属性(来自$ java.home / lib / jaxws.properties)
  • 使用系统属性
  • 使用OSGi Service Loader查找

因此,简单地说,在提供者的实现中添加依赖项即可解决此问题。

对我来说,添加jaxws-rt依赖关系可以解决此问题。

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