【发布时间】: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