WebService - [Debug] javax.xml.ws.WebServiceException: Undefined port type
背景:
使用JDK来开发java web service (Create a SOAP-based RPC style web service endpoint by using JAX-WS)。
具体请看 -> WebService - 使用JDK开发WebService
代码:
import javax.xml.namespace.QName; import javax.xml.ws.Service; import java.net.MalformedURLException; import java.net.URL; public class WebServiceClient { public static void main(String[] args) throws MalformedURLException { URL url = new URL("http://127.0.0.1:8080/WS_Server/Webservice?wsdl"); QName qname = new QName("http://webservice/", "WebServiceImplService"); Service service = Service.create(url, qname); WebServiceI serviceI = service.getPort(WebServiceI.class); System.out.println(serviceI.sayHello("cuixunxu ")); }
错误:
Exception in thread "main" javax.xml.ws.WebServiceException: Undefined port type: {http://webservice/}WebServiceI at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:456) at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:463) at javax.xml.ws.Service.getPort(Service.java:188) at webservice.client.WebServiceClient.main(WebServiceClient.java:19)
解决方法:
@WebService的接口类WebServiceI代码:
package webservice; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public interface WebServiceI { @WebMethod String sayHello(String name); @WebMethod String save(String name,String pwd); }
WebServiceI接口的实现类WebServiceImpl类的代码:...注意,需要在@WebService注解后面加上接口的全路径
package webservice; import webservice.WebServiceI; import javax.jws.WebService; @WebService(endpointInterface="webservice.WebServiceI") public class WebServiceImpl implements WebServiceI { @Override public String sayHello(String name) { return name + "is calling!!!"; } @Override public String save(String name, String pwd) { return "Receive name: " + name + " and pwd: " + pwd; } }
分类:
WebService
标签:
debug
posted on 2019-03-10 00:21 frank_cui 阅读(1499) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?