CXF客户端代码生成与服务调用(二)


通过命令行操作:

[plain]  view plain  copy
  1. C:\Documents and Settings\hsy  
  2. C:\Documents and Settings\hsy>f:  
  3. F:\>dir  
  4.  驱动器 F 中的卷是 ProData  
  5.  卷的序列号是 5C5E-6EE2  
  6.   
  7. F:\ 的目录  
  8. ...  
  9. 2014-08-04  09:19    <DIR>          开源官方源文件  
  10. ...  
  11.   
  12.                2 个文件        687,890 字节  
  13.               15 个目录 22,354,870,272 可用字节  
  14.   
  15. F:\>cd "开源官方源文件"  
  16.   
  17. 最终进入F:\开源官方源文件\CXF\apache-cxf-2.7.12\apache-cxf-2.7.12目录下,再进入到bin目录下  
  18.   
  19. F:\开源官方源文件\CXF\apache-cxf-2.7.12\apache-cxf-2.7.12\bin>wsdl2java -p com.  
  20. sy.cxf.client -d e:\ -all http://localhost:8080/cxf/webservice/helloWorld?wsdl  

wsdl用法:
wsdl2java -p com.kilomob.puwernetwork -d F:\lbs -all F:\PhonePosProxy.wsdl
wsdl2java用法: 
wsdl2java -p com -d src -all  aa.wsdl 

参数说明:
 
-p 也就是package 对应java中的包
-d 输入目录,生成.java文件会在该目录,会自动添加-p参数配置的包路径
-client 生成客户端测试web service的代码.
-server 生成服务器启动web  service的代码.
-impl 生成web service的实现代码.
-ant  生成build.xml文件.
-all 生成上面-client -server -impl -ant 对应的所有文件.


这样就会在指定的目录下按照设定的包名称生成相应的service客户端需要生成的代码。


然后将生成的代码拷贝到新建的cxfClient目录下,如图:



打开HelloWorld_HelloWorldImplPort_Client.java如下:

[java]  view plain  copy
  1. package com.hsy.cxf.client;  
  2.   
  3. /** 
  4.  * Please modify this class to meet your needs 
  5.  * This class is not complete 
  6.  */  
  7.   
  8. import java.io.File;  
  9. import java.net.MalformedURLException;  
  10. import java.net.URL;  
  11. import java.util.ArrayList;  
  12.   
  13. import javax.xml.namespace.QName;  
  14.   
  15. /** 
  16.  * This class was generated by Apache CXF 2.7.12 
  17.  * 2014-08-04T22:45:09.609+08:00 
  18.  * Generated source version: 2.7.12 
  19.  *  
  20.  */  
  21. public final class HelloWorld_HelloWorldImplPort_Client {  
  22.   
  23.     private static final QName SERVICE_NAME = new QName("http://server.hsy.com/""HelloWorld");  
  24.   
  25.     private HelloWorld_HelloWorldImplPort_Client() {  
  26.     }  
  27.   
  28.     public static void main(String args[]) throws java.lang.Exception {  
  29.         URL wsdlURL = HelloWorld_Service.WSDL_LOCATION;  
  30.         if (args.length > 0 && args[0] != null && !"".equals(args[0])) {   
  31.             File wsdlFile = new File(args[0]);  
  32.             try {  
  33.                 if (wsdlFile.exists()) {  
  34.                     wsdlURL = wsdlFile.toURI().toURL();  
  35.                 } else {  
  36.                     wsdlURL = new URL(args[0]);  
  37.                 }  
  38.             } catch (MalformedURLException e) {  
  39.                 e.printStackTrace();  
  40.             }  
  41.         }  
  42.         
  43.         HelloWorld_Service ss = new HelloWorld_Service(wsdlURL, SERVICE_NAME);  
  44.         HelloWorld port = ss.getHelloWorldImplPort();    
  45.           
  46.         {  
  47.         System.out.println("Invoking sayHi...");  
  48.         java.lang.String _sayHi_text = "张三";  
  49.         java.lang.String _sayHi__return = port.sayHi(_sayHi_text);  
  50.         System.out.println("sayHi.result=" + _sayHi__return);  
  51.   
  52.   
  53.         }  
  54.         {  
  55.         System.out.println("Invoking sayHiToUser...");  
  56.         com.hsy.cxf.client.User _sayHiToUser_arg0 = new User();  
  57.         _sayHiToUser_arg0.setDescription("王明本人");  
  58.         _sayHiToUser_arg0.setName("王明");  
  59.         java.lang.String _sayHiToUser__return = port.sayHiToUser(_sayHiToUser_arg0);  
  60.         System.out.println("sayHiToUser.result=" + _sayHiToUser__return);  
  61.   
  62.   
  63.         }  
  64.         {  
  65.         System.out.println("Invoking sayHiToUserList...");  
  66.         java.util.List<com.hsy.cxf.client.User> _sayHiToUserList_arg0 = new ArrayList<User>();  
  67.         User user1 = new User();  
  68.         user1.setDescription("马三立本人");  
  69.         user1.setName("马三立");  
  70.         _sayHiToUserList_arg0.add(user1);  
  71.         User user2 = new User();  
  72.         user2.setDescription("郭德纲本人");  
  73.         user2.setName("郭德纲");  
  74.         _sayHiToUserList_arg0.add(user2);  
  75.         java.util.List<java.lang.String> _sayHiToUserList__return = port.sayHiToUserList(_sayHiToUserList_arg0);  
  76.         System.out.println("sayHiToUserList.result=" + _sayHiToUserList__return);  
  77.   
  78.   
  79.         }  
  80.   
  81.         System.exit(0);  
  82.     }  
  83.   
  84. }  


调用服务端的方法,控制台打印如下:

[html]  view plain  copy
  1. Invoking sayHi...  
  2. sayHi.result=Hello,张三  
  3. Invoking sayHiToUser...  
  4. sayHiToUser.result=Hello,王明  
  5. Invoking sayHiToUserList...  
  6. sayHiToUserList.result=[Hello 马三立, Hello 郭德纲]  

这样,远程客户端调用webService也成功了。


原文:http://blog.csdn.net/hu_shengyang/article/details/38384839

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值