我想知道为什么我的客户代码中有此异常。 我只有一个wsdl和Web服务界面,并尝试调用此Web服务的方法。
这是我的客户代码:
URL url = new URL("file:/C:/Projects/wsdl2.wsdl");
QName qname = new QName("http://impl.service.proxy.ma/", "SPWSImplService");
Service service = Service.create(url, qname);
SPIntWS sPIntWS = service.getPort(SPIntWS.class);
我看到了许多类似我的情况,但就我而言,我无法在实现类的@WebService批注中提供endpointIneterface。 这是一些日志:
Exception in thread "main" javax.xml.ws.WebServiceException: Undefined port type: {http://ws.client/}SPIntWS
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:349)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:355)
at javax.xml.ws.Service.getPort(Service.java:188)
at scci.client.application.Client.sPIntWSProcess(Client.java:74)
at scci.client.application.Client.main(Client.java:44)
感谢您的帮助。
答案 0 :(得分:1)
在URL中,您提到的文件路径不是主机,因此您将其更改为
URL url = new URL("file:/C:/Projects/wsdl2.wsdl");
成为
URL url = new URL("http://localhost:8080/Projects/wsdl2.wsdl");
将wsdl文件放置在工作场所文件夹下。
答案 1 :(得分:1)
为解决此错误,我使用了wsimport工具并生成了Interface和Implementation,而无需更改客户端代码中的任何内容。