Web服务肥皂认证与javax问题

时间:2019-06-10 13:04:21

标签: java web-services soap

我在此地址 https://fcsa-test-preval-ws.gaa.qc.ca/fcsa-preval.svc?wsdl 上有一个名为 FCSAPreval 的网络服务。

我能够使用 wsimport 命令从Web服务的WSDL中获取所有类。 enter image description here

在尝试使用肥皂访问此服务时遇到问题,我的代码是:

       URL url = new URL("https://fcsa-test-preval-ws.gaa.qc.ca/fcsa-preval.svc?wsdl");
       QName qname = new QName("https://fcsa-test-preval-ws.gaa.qc.ca/", "FCSAPreval");

       Service service = Service.create(url, qname);
       FCSAPreval hello = service.getPort(FCSAPreval.class);

它不断抛出此错误:

xception in thread "main" javax.xml.ws.WebServiceException: {https://fcsa-test-preval-ws.gaa.qc.ca/}fcsa-preval.svc is not a valid service. The valid services are : {http://tempuri.org/}FCSAPreval
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:310)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:215)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:196)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:192)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:104)
at javax.xml.ws.Service.<init>(Service.java:77)
at javax.xml.ws.Service.create(Service.java:707)
at test.test.main(test.java:39)

谢谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您必须使用wsdl中定义的正确名称空间:

<wsdl:definitions .... name="FCSAPreval" targetNamespace="http://tempuri.org/">

按:

QName qname = new QName("http://tempuri.org/", "FCSAPreval");