我的问题是关于javax.xml.ws.WebServiceException:尝试获取端口时未定义的端口类型?

时间:2018-10-17 10:27:23

标签: java web-services wsdl jax-ws

我想知道为什么我的客户代码中有此异常。 我只有一个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)

感谢您的帮助。

2 个答案:

答案 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,而无需更改客户端代码中的任何内容。