生成WebService客户端(Client)方式介绍

生成WebService客户端的几种方式

1.通过jdk自带的工具wsimport

需要环境:

jdk环境

主要的参数介绍:

-encoding :指定编码格式(此处是utf-8的指定格式)
-keep:是否生成Java源文件
-d:指定.class文件的输出目录
-s:指定.java文件的输出目录
-p:定义生成类的包名,不定义的话有默认包名
-verbose:在控制台显示输出信息
-b:指定jaxws/jaxb绑定文件或额外的schemas
-extension:使用扩展来支持SOAP1.2

命令示范:

wsimport -encoding utf-8  -keep  -s C:\Users\xx\Desktop\ -p com.test -verbose http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl 

2.通过wsdl2java工具

需要环境:

1、JDK环境 
2、下载apache-cxf发布包,解压,设置CXF_HOME,并添加%CXF_HOME%/bin到path环境变量。 
(命令行输入wsdl2java -help,有正常提示说明环境已经正确配置。)

主要参数介绍:

-o  : 指定生成代码的输出路径 
-a : 生成异步模式的代码 
-s : 生成同步模式的代码 
-p  : 指定代码的package名称 
-l  : 使用的语言(Java/C) 默认是java 
-t  : 为代码生成测试用例 
-ss : 生成服务端代码 默认不生成 
-sd : 生成服务描述文件 services.xml,仅与-ss一同使用 
-g  : 生成服务端和客户端的代码 
-pn  : 当WSDL中有多个port时,指定其中一个port 
-sn  : 选择WSDL中的一个service 
-u  : 展开data-binding的类 
-r  : 为代码生成指定一个repository 
-ssi : 为服务端实现代码生成接口类 
-S  : 为生成的源码指定存储路径 
-R  : 为生成的resources指定存储路径 
--noBuildXML : 输出中不生成build.xml文件 
--noWSDL : 在resources目录中不生成WSDL文件 
--noMessageReceiver: 不生成MessageReceiver类 

命令规范:

wsdl2java -encoding utf-8 -d C:/user/desktop/test http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl

3.通过idea自动生成

通过idea工具类自动生成,方便快捷

如图:

生成WebService客户端(Client)方式介绍_第1张图片

  • 记得先选中项目再执行上述操作

生成WebService客户端(Client)方式介绍_第2张图片

如果本地下载cxf 并且在idea→settings→webservices中配置过cxf的可以选择cxf,如果没有可以选择Glassfish/JAX-Ws

具体其中所填含义:

web service wsdl: 顾名思义 wsdl url
Output path: 生成的路径
Package : 包名

点击OK 即可生成,生成结构如下:

生成WebService客户端(Client)方式介绍_第3张图片

测试类:

/**
 * @Description Test
 * @Author
 * @date 2021/1/15 10:31
 */
@SpringBootTest(classes = WebApplication.class)
public class Test {

    @Autowired
    private DemoClientService demoClientService;

    @org.junit.jupiter.api.Test
    public void test1(){
        demoClientService.testSend();
    }
    @org.junit.jupiter.api.Test
    public void test2(){

        DemoWebServiceImplService demoWebServiceImplService = new DemoWebServiceImplService();
        ServerServiceDemo serverServiceDemo = demoWebServiceImplService.getServerServiceDemoPort();
        String re = serverServiceDemo.testWebService("hhheee",15);
        System.out.println(re);
    }

}

测试结果:

生成WebService客户端(Client)方式介绍_第4张图片

以上三种都通过测试,成功调用。

三种方式使用感受:

wsimport方式只要jdk环境即可不需要其他环境,用起来最方便。

wsdl2java方式需要下载cxf包并配置环境

通过idea方式创建最直观,但是生成的代码中测试服务的编码默认是GBK 需要手动重新reload,而上两种可以通过命令形式设置编码格式(或许idea也可以设置,但是目前没有找到~)

你可能感兴趣的:(WebService,java,java)