WebService生成客户端代码的两种方式: wsdl2java 、eclipse_axis

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shuzhupeng/article/details/79967122

一 、 wsdl2java 生成webService服务端代码:

    1.1  下载apache cxf的包,如apache-cxf-3.2.4,地址:cxf.apache.org/download.html



    1.2 解压 apache-cxf-3.2.4.zip 至某一目录,eg__     D:\soft_install_work\apache-cxf-3.2.4

    1.3 设置环境变量

            1.3.1 、CXF_HOME=D:\apache-cxf-2.7.10
            1.3.2、在path后面加上 %CXF_HOME%/bin;

    1.4 cmd 中运行 wsdl2java 工具

        在cmd命令中输入wsdl2java,如果有提示usage,就表明配置成功


   在cmd命令中输入:wsdl2java -d D:\\src -client http://api.xxx.cn/****/service/registerService?wsdl

(D:\\src 是客户端程序代码所在的目录,http://api.xxx.cn/****/service/registerService?wsdl 是 定义webservice的地址)

此时便可以在 D:\\src 下生成 wsdl 代码


二、 eclipse_axis,使用axis 生成使用Eclipse自带的Axis1插件生成Web Service服务端---客户端:

右键项目,new,选择“other”,输入web,选择“Web Service Client”,NEXT。
注意:在 Service definition中 输入 wsdl 地址。
有可能 ,报错(The Tomcat v8.0 Server server does not support the client project UtilsTest.),解决(在新建Dynamic web Project项目时需要选择servlet版本)(http://blog.163.com/xueling1231989@126/blog/static/102640807201501383952762/

在生成的包下,有一个代理类,new出代理类,调接口方法,传正确的参数就可以了。
YyghPortTypeProxy pro = new YyghPortTypeProxy();
String s = pro.getScheduleList("PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48cmVxdWVzdD48cmVxdWVzdGlkPmp5MTE0PC9yZXF1ZXN0aWQ+PHBhZ2VhY3Rpb25pbj48Y3VycmVudHBhZ2VudW0+MDwvY3VycmVudHBhZ2VudW0+PHJvd3NwZXJwYWdlPjEwMDwvcm93c3BlcnBhZ2U+PHBhZ2VhY3Rpb24+Rmlyc3RQYWdlPC9wYWdlYWN0aW9uPjx0b3BhZ2VudW0+MDwvdG9wYWdlbnVtPjwvcGFnZWFjdGlvbmluPjxyZXRyaWV2ZWFyZ3M+PG91dHBkYXRlX3N0YXJ0PjIwMTctMDItMjM8L291dHBkYXRlX3N0YXJ0PjxvdXRwZGF0ZV9lbmQ+MjAxNy0wMy0wMTwvb3V0cGRhdGVfZW5kPjx0aW1laW50ZXJ2YWw+PC90aW1laW50ZXJ2YWw+PGhvc3BpdGFsaWQ+MTAwMDE8L2hvc3BpdGFsaWQ+PGRlcHRjb2RlPjwvZGVwdGNvZGU+PGRvY3Rvcm5vPjwvZG9jdG9ybm8+PHNwZWNpYWx0eT48L3NwZWNpYWx0eT48L3JldHJpZXZlYXJncz48L3JlcXVlc3Q+");
System.out.println(s);


选中MathImpl.wsdl文件右键->Web Services->Generate Client
 只生成Web Service客户端代码,选择完成后点击“下一步”:
然后选择Web Servic客户端代码的生成路径,选择完成后点击“完成”:
此时可以发现在math工程中自动生成了Web Service客户端代码
直接使用MathImplProxy类即可:
[java] view plain copy
 
  1. package com.sean.ws;  
  2.   
  3. import java.rmi.RemoteException;  
  4.   
  5. public class Test {  
  6.     public static void main(String[] args) throws RemoteException {  
  7.         MathImplProxy proxy = new MathImplProxy();  
  8.         proxy.plus(12);  
  9.     }  
  10. }  

阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页