web server 接口调用
1. 生成客户端代码
2.调用接口
1 2 3 4 5 6 7 8 9 10 11 | import javax.xml.ws.Service;<br><br> public static NotificationServiceDevImplPortType mokaAlarmServer(Authorization authorization) throws Exception{ //创建WSDL的URL,注意不是服务地址 String wsdlUrl = "http://" +IP地址+ ":" +端口+ "/pureportal/webservices/notification?wsdl" ; //创建服务视图 Service service = WebServiceUtil.getService(wsdlUrl, "http://impl.notification.dev.bsm.mocha.com/" , "NotificationServiceDevImpl" ); //获取服务实现类 //参数解释:serviceEndpointInterface - 服务端口(wsdl文档中服务端口的name属性,例如<wsdl:port name="MobileCodeWSSoap" binding="tns:MobileCodeWSSoap">) return service.getPort(NotificationServiceDevImplPortType. class ); } |
1 | web service工具类 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package com.kinth.util; import java.net.MalformedURLException; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.Service; /** * web service工具类 * @author huangshanghua * @date 2018-01-14 */ public class WebServiceUtil { /** * 获取web service服务 * * @param wsdlUrl * @param namespaceURI * @param localPart * @return * @throws MalformedURLException */ public static Service getService(String wsdlUrl,String namespaceURI, String localPart) throws MalformedURLException{ //创建WSDL的URL,注意不是服务地址 URL url = new URL(wsdlUrl); //创建服务名称 //1.namespaceURI - 命名空间地址 (wsdl文档中的targetNamespace) //2.localPart - 服务视图名 (wsdl文档中服务名称,例如<wsdl:service name="MobileCodeWS">) QName qname = new QName(namespaceURI, localPart); //创建服务视图 //参数解释: //1.wsdlDocumentLocation - wsdl地址 //2.serviceName - 服务名称 Service service = Service.create(url, qname); return service; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构