问题描述
java7下,发布webservice服务之后,调用client端代码,结果发现这个问题,跪求大侠求解:Exceptioninthread"main"javax.xml.ws.WebServiceException:Undefinedporttype:{http://www.pintn.com/}IMyServiceatcom.sun.xml.internal.ws.client.WSServiceDelegate.getPort(UnknownSource)atcom.sun.xml.internal.ws.client.WSServiceDelegate.getPort(UnknownSource)atjavax.xml.ws.Service.getPort(UnknownSource)atcom.pintn.www.testClient.main(testClient.java:16)Interface:@WebServicepublicinterfaceIMyService{publicintadd(inta,intb);publicintminus(inta,intb);}Implclass:@WebService(endpointInterface="com.pintn.www.MyServiceImpl")publicclassMyServiceImplimplementsIMyService{@Overridepublicintadd(inta,intb){System.out.println(a+"+"+b+"="+(a+b));returna+b;}@Overridepublicintminus(inta,intb){System.out.println(a+"-"+b+"="+(a-b));returna-b;}}serverclass:publicclassMyService{publicstaticvoidmain(String[]args){Stringaddress="http://localhost:8888/ns";Endpoint.publish(address,newMyServiceImpl());}}Clientclass:publicclasstestClient{publicstaticvoidmain(String[]args){try{URLurl=newURL("http://localhost:8888/ns?wsdl");QNameqname=newQName("http://www.pintn.com/","MyServiceImplService");Serviceservice=Service.create(url,qname);IMyServicems=service.getPort(IMyService.class);System.out.println(ms.add(1,2));}catch(MalformedURLExceptione){e.printStackTrace();}}}
解决方案
解决方案二:
你的endpointInterface定义错了,endpointInterface属性指定的是接口,你写的是实现类,修改成接口即可:endpointInterface="com.pintn.xxx.IMyService"
解决方案三:
楼上正解,啥也不用说了