因为刚毕业的时候踩到了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. 编写测试类