Java 通过https检索Apache CXF web服务客户端的端口时发生NullPointerException

Java 通过https检索Apache CXF web服务客户端的端口时发生NullPointerException,java,web-services,apache,cxf,Java,Web Services,Apache,Cxf,我有一个web服务,我正在使用使用Apache CXF中的wsdl2java工具生成的客户端调用它。在我们将web服务转移到https之后,一切都很顺利。现在,当我尝试获取端口时,得到一个NullPointerException 我非常确定服务器的证书没有问题,因为我可以获取web服务的WSDL 规格: Apache CXF 2.7.6 玻璃鱼3.1.2.2 这是我的客户代码: public final static QName BasicHttpEndpoint2 = new QName("h

我有一个web服务,我正在使用使用Apache CXF中的wsdl2java工具生成的客户端调用它。在我们将web服务转移到https之后,一切都很顺利。现在,当我尝试获取端口时,得到一个NullPointerException

我非常确定服务器的证书没有问题,因为我可以获取web服务的WSDL

规格: Apache 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);
}
这是我得到的部分跟踪:

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.lang.NullPointerException
在java.io.Reader上。(Reader.java:78)
位于java.io.InputStreamReader。(InputStreamReader.java:72)
位于com.sun.xml.wss.jaxws.impl.RMPolicyResolver.getResourceReader(RMPolicyResolver.java:114)
在com.sun.xml.wss.jaxws.impl.RMPolicyResolver.unmarshalPolicy(RMPolicyResolver.java:107)上
位于com.sun.xml.wss.jaxws.impl.RMPolicyResolver.getOperationLevelPolicy(RMPolicyResolver.java:98)
位于com.sun.xml.wss.jaxws.impl.SecurityTubeBase.buildProtocolPolicy(SecurityTubeBase.java:1298)
位于com.sun.xml.wss.jaxws.impl.SecurityTubeBase.collectPolicys(SecurityTubeBase.java:774)
位于com.sun.xml.wss.jaxws.impl.SecurityTubeBase。(SecurityTubeBase.java:274)
位于com.sun.xml.wss.jaxws.impl.SecurityClientTube(SecurityClientTube.java:152)
位于com.sun.xml.wss.provider.wsit.SecurityTubeFactory.\uuuuAW\uCreateTube(SecurityTubeFactory.java:285)
位于com.sun.xml.wss.provider.wsit.SecurityTubeFactory.createTube(SecurityTubeFactory.java)
位于com.sun.xml.ws.assembler.TubeCreator.createTube(TubeCreator.java:84)
位于com.sun.xml.ws.assembler.tubelineassemblerfactorympl$metrotubelineasembler.\uuuuaw\ucreateclient(tubelineassemblerfactorympl.java:130)
位于com.sun.xml.ws.assembler.tubelineassemblerfactorympl$metrotubelineasembler.createClient(tubelineassemblerfactorympl.java)
位于com.sun.xml.ws.client.Stub.createPipeline(Stub.java:314)
位于com.sun.xml.ws.client.Stub(Stub.java:286)
位于com.sun.xml.ws.client.Stub(Stub.java:230)
位于com.sun.xml.ws.client.Stub(Stub.java:245)
位于com.sun.xml.ws.client.sei.SEIStub。(SEIStub.java:91)
在com.sun.xml.ws.client.WSServiceDelegate.getStubHandler(WSServiceDelegate.java:725)上
在com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:703)上
位于com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:387)
在com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:363)
在com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:345)上
位于javax.xml.ws.Service.getPort(Service.java:134)
在trs.webservice.utilities.Appts.getBasicHttpsEndpoint(Appts.java:99)

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