idea开发webservice接口 访问客户端
因为刚毕业的时候踩到了webservice生命历程的尾巴,所以开发过一次需要调用webservice接口的功能,作为小白的我使用cxf访问webservice接口,感觉那是个变态的东西,自那便对webservice存下了心理阴影。庆幸的是,在我进入职场后,很快,webservice接口就被公司淘汰了。
凑巧这几天有个新的需求,需要调用一个平台系统的老接口,更凑巧的是接口是webservice写的,求听到这个消息的时候,求心里阴影面积!!!
在顶着打死都不愿意再听到webservice这个名字的巨大阴影下,在同事的介绍下,在百度搜索框中敲入“idea开发webservice客户端”.
幸福或许就这样不期而遇了,哈哈哈,原来现在写webservice接口这么简单。。。。允许我星爷式大笑三分钟 啊哈哈哈。。。。
---------------------------------------以上内容,着急的同学可以忽略 ^--^ ------------------------------------
在你的工程中找创建一个package ,选中包右键,拉到最下面,选择webservice -> Gentate Java Code from Wdsl
配置如下,第二项和第三项配置要注意。点击ok,等着生成java代码就可以
生成的文件可能很多,最重要的是有一个interface,这个interface定义了所有调用webservice接口的方法。
那么,如何使用这些java代码呢
1 . 如果是spring项目,你需要创建一个java配置类,里面配置一个服务接口的调用bean

import com.provider.manager.zh.webservice.dataprovider.IBPServiceInterface; import com.provider.manager.zh.webservice.dataprovider.IBPWebServices; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.net.MalformedURLException; import java.net.URL; /** * webservice接口配置 */ @Configuration public class WebserviceConfigure { private static final Logger logger = LoggerFactory.getLogger(WebserviceConfigure.class); /** * 田海超 * @return */ @Bean public IBPServiceInterface IBPServiceInterface() { URL wsdlURL = null; try { wsdlURL = new URL("${zh.system.webservice.flexsupt.flexsuptDataprovider}"); } catch (MalformedURLException e) { logger.error("初始化综合同步webservice接口(wsdl:{})异常:", "${zh.system.webservice.flexsupt.flexsuptDataprovider}", e); //TODO 使用统一的异常累进行处理 throw new RuntimeException(e); } IBPWebServices ss = new IBPWebServices(wsdlURL); IBPServiceInterface port = ss.getIBPServiceImplePort(); return port; } }
2. 这里要注意,不同接口的wsdl 生产的响应类的名字是不一样的,但是基本结构是固定的,
3. 编写测试类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现