【问题标题】:NullPointerException while retrieving Port for Apache CXF web service client over https通过 https 检索 Apache CXF Web 服务客户端的端口时出现 NullPointerException
【发布时间】:2014-01-16 16:36:05
【问题描述】:

我有一个使用 Apache CXF 的 wsdl2java 工具生成的客户端调用的 Web 服务。在我们将 Web 服务移到 https 后面之前,一切都运行良好。现在,当我尝试获取端口时,我得到了 NullPointerException。

我很确定这不是服务器证书的问题,因为我可以获得 Web 服务的 WSDL。

规格: 阿帕奇 CXF 2.7.6 玻璃鱼 3.1.2.2

这是我的客户端代码:

public final static QName BasicHttpEndpoint2 = new QName("http://tempuri.org/", "BasicHttpEndpoint2");

@WebEndpoint(name = "BasicHttpsEndpoint")
public IAppts getBasicHttpsEndpoint()
{
    return super.getPort(BasicHttpsEndpoint, IAppts.class);
}

这是我得到的 StackTrace 的一部分:

Caused by: java.lang.NullPointerException
        at java.io.Reader.<init>(Reader.java:78)
        at java.io.InputStreamReader.<init>(InputStreamReader.java:72)
        at com.sun.xml.wss.jaxws.impl.RMPolicyResolver.getResourceReader(RMPolicyResolver.java:114)
        at com.sun.xml.wss.jaxws.impl.RMPolicyResolver.unmarshalPolicy(RMPolicyResolver.java:107)
        at com.sun.xml.wss.jaxws.impl.RMPolicyResolver.getOperationLevelPolicy(RMPolicyResolver.java:98)
        at com.sun.xml.wss.jaxws.impl.SecurityTubeBase.buildProtocolPolicy(SecurityTubeBase.java:1298)
        at com.sun.xml.wss.jaxws.impl.SecurityTubeBase.collectPolicies(SecurityTubeBase.java:774)
        at com.sun.xml.wss.jaxws.impl.SecurityTubeBase.<init>(SecurityTubeBase.java:274)
        at com.sun.xml.wss.jaxws.impl.SecurityClientTube.<init>(SecurityClientTube.java:152)
        at com.sun.xml.wss.provider.wsit.SecurityTubeFactory.__AW_createTube(SecurityTubeFactory.java:285)
        at com.sun.xml.wss.provider.wsit.SecurityTubeFactory.createTube(SecurityTubeFactory.java)
        at com.sun.xml.ws.assembler.TubeCreator.createTube(TubeCreator.java:84)
        at com.sun.xml.ws.assembler.TubelineAssemblerFactoryImpl$MetroTubelineAssembler.__AW_createClient(TubelineAssemblerFactoryImpl.java:130)
        at com.sun.xml.ws.assembler.TubelineAssemblerFactoryImpl$MetroTubelineAssembler.createClient(TubelineAssemblerFactoryImpl.java)
        at com.sun.xml.ws.client.Stub.createPipeline(Stub.java:314)
        at com.sun.xml.ws.client.Stub.<init>(Stub.java:286)
        at com.sun.xml.ws.client.Stub.<init>(Stub.java:230)
        at com.sun.xml.ws.client.Stub.<init>(Stub.java:245)
        at com.sun.xml.ws.client.sei.SEIStub.<init>(SEIStub.java:91)
        at com.sun.xml.ws.client.WSServiceDelegate.getStubHandler(WSServiceDelegate.java:725)
        at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:703)
        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:387)
        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:363)
        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:345)
        at javax.xml.ws.Service.getPort(Service.java:134)
        at trs.webservice.utilities.Appts.getBasicHttpsEndpoint(Appts.java:99)

【问题讨论】:

    标签: java web-services apache cxf


    【解决方案1】:

    这不是在运行时使用 CXF。 Glassfish (Metro) 中内置的 JAX-WS 实现正在被拾取和使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 2011-09-12
      相关资源
      最近更新 更多