webService小记--实现服务端客户端
使用cxf提供的JaxWsServerFactoryBean发布webService服务,wsdl文件中的标签会存在 wsdl:前缀。
直接使用 javax.xml.ws.Endpoint; 调用publish方法发布服务 标签中不包含 wsdl: 前缀。
wsimport 生成的客户端使用方法为通过 Service 调用getXXXport方法 返回接口。接口调用方法
1 JaxWsServerImplService jaxWsServerImplService = new JaxWsServerImplService(); 2 JaxWsServer jaxWsServer = jaxWsServerImplService.getJaxWsServerImplPort(); 3 jaxWsServer.sayHello("aaaaa");
cxf 通过 JaxWsServerFactoryBean 发布服务
1 JaxWsServerFactoryBean serverFactoryBean = new JaxWsServerFactoryBean(); 2 // wsdl地址为 http://localhost:9999/JaxWsServer?wsdl 3 serverFactoryBean.setAddress("http://localhost:9999/JaxWsServer"); 4 // serviceClass 用于指定 service的name 5 serverFactoryBean.setServiceClass(JaxWsServer.class); 6 // 服务端指定实现类 7 serverFactoryBean.setServiceBean(new JaxWsServerImpl()); 8 // 发布服务 9 serverFactoryBean.create(); 10 System.out.println("cxf 发布webService 服务");
cxf 通过 JaxWsProxyFactoryBean 调用服务
1 // 客户端使用的是 jaxWsProxyFactoryBean 不是 jaxWsClientFactoryBean 2 JaxWsProxyFactoryBean proxyFactoryBean = new JaxWsProxyFactoryBean(); 3 // setAddress 指定 wsdl文件地址 4 proxyFactoryBean.setAddress("http://localhost:9999/JaxWsServer?wsdl"); 5 proxyFactoryBean.setServiceClass(JaxWsServer.class); 6 // Object 强转为 JaxWsServer 7 JaxWsServer jaxWsServer = (JaxWsServer) proxyFactoryBean.create(); 8 jaxWsServer.sayHello("JaxWsProxyFactoryBean "); 9 System.out.println("over");
附上jaxWsServer 和 jaxWsServerImpl代码
1 /** 2 * @author dengs 3 * @desc 服务端暴露接口 4 */ 5 @WebService 6 public interface JaxWsServer { 7 @WebMethod 8 void sayHello(@WebParam String name); 9 } 10 11 /** 12 * @author dengs 13 * @desc 服务实现类 14 */ 15 public class JaxWsServerImpl implements JaxWsServer{ 16 17 @Override 18 public void sayHello(String name) { 19 System.out.println("---------------------------------------"); 20 System.out.println("hello "+ name); 21 System.out.println("---------------------------------------"); 22 } 23 }
欺骗自己最简单,欺骗自己最困难。
安慰自己最简单,安慰自己最困难。
分类:
webService
标签:
webService
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】