我在此地址 https://fcsa-test-preval-ws.gaa.qc.ca/fcsa-preval.svc?wsdl 上有一个名为 FCSAPreval 的网络服务。
我能够使用 wsimport 命令从Web服务的WSDL中获取所有类。
在尝试使用肥皂访问此服务时遇到问题,我的代码是:
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)
谢谢您的帮助!
答案 0 :(得分:1)
您必须使用wsdl中定义的正确名称空间:
<wsdl:definitions .... name="FCSAPreval" targetNamespace="http://tempuri.org/">
按:
QName qname = new QName("http://tempuri.org/", "FCSAPreval");