您的位置:首页 > 编程语言

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

2017-09-28 10:21 856 查看
通过命令行操作:

[plain] view
plain copy

C:\Documents and Settings\hsy  

C:\Documents and Settings\hsy>f:  

F:\>dir  

 驱动器 F 中的卷是 ProData  

 卷的序列号是 5C5E-6EE2  

  

F:\ 的目录  

...  

2014-08-04  09:19    <DIR>          开源官方源文件  

...  

  

               2 个文件        687,890 字节  

              15 个目录 22,354,870,272 可用字节  

  

F:\>cd "开源官方源文件"  

  

最终进入F:\开源官方源文件\CXF\apache-cxf-2.7.12\apache-cxf-2.7.12目录下,再进入到bin目录下  

  

F:\开源官方源文件\CXF\apache-cxf-2.7.12\apache-cxf-2.7.12\bin>wsdl2java -p com.  

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

package com.hsy.cxf.client;  

  

/** 

 * Please modify this class to meet your needs 

 * This class is not complete 

 */  

  

import java.io.File;  

import java.net.MalformedURLException;  

import java.net.URL;  

import java.util.ArrayList;  

  

import javax.xml.namespace.QName;  

  

/** 

 * This class was generated by Apache CXF 2.7.12 

 * 2014-08-04T22:45:09.609+08:00 

 * Generated source version: 2.7.12 

 *  

 */  

public final class HelloWorld_HelloWorldImplPort_Client {  

  

    private static final QName SERVICE_NAME = new QName("http://server.hsy.com/", "HelloWorld");  

  

    private HelloWorld_HelloWorldImplPort_Client() {  

    }  

  

    public static void main(String args[]) throws java.lang.Exception {  

        URL wsdlURL = HelloWorld_Service.WSDL_LOCATION;  

        if (args.length > 0 && args[0] != null && !"".equals(args[0])) {   

            File wsdlFile = new File(args[0]);  

            try {  

                if (wsdlFile.exists()) {  

                    wsdlURL = wsdlFile.toURI().toURL();  

                } else {  

                    wsdlURL = new URL(args[0]);  

                }  

            } catch (MalformedURLException e) {  

                e.printStackTrace();  

            }  

        }  

        

        HelloWorld_Service ss = new HelloWorld_Service(wsdlURL, SERVICE_NAME);  

        HelloWorld port = ss.getHelloWorldImplPort();    

          

        {  

        System.out.println("Invoking sayHi...");  

        java.lang.String _sayHi_text = "张三";  

        java.lang.String _sayHi__return = port.sayHi(_sayHi_text);  

        System.out.println("sayHi.result=" + _sayHi__return);  

  

  

        }  

        {  

        System.out.println("Invoking sayHiToUser...");  

        com.hsy.cxf.client.User _sayHiToUser_arg0 = new User();  

        _sayHiToUser_arg0.setDescription("王明本人");  

        _sayHiToUser_arg0.setName("王明");  

        java.lang.String _sayHiToUser__return = port.sayHiToUser(_sayHiToUser_arg0);  

        System.out.println("sayHiToUser.result=" + _sayHiToUser__return);  

  

  

        }  

        {  

        System.out.println("Invoking sayHiToUserList...");  

        java.util.List<com.hsy.cxf.client.User> _sayHiToUserList_arg0 = new ArrayList<User>();  

        User user1 = new User();  

        user1.setDescription("马三立本人");  

        user1.setName("马三立");  

        _sayHiToUserList_arg0.add(user1);  

        User user2 = new User();  

        user2.setDescription("郭德纲本人");  

        user2.setName("郭德纲");  

        _sayHiToUserList_arg0.add(user2);  

        java.util.List<java.lang.String> _sayHiToUserList__return = port.sayHiToUserList(_sayHiToUserList_arg0);  

        System.out.println("sayHiToUserList.result=" + _sayHiToUserList__return);  

  

  

        }  

  

        System.exit(0);  

    }  

  

}  

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

[html] view
plain copy

Invoking sayHi...  

sayHi.result=Hello,张三  

Invoking sayHiToUser...  

sayHiToUser.result=Hello,王明  

Invoking sayHiToUserList...  

sayHiToUserList.result=[Hello 马三立, Hello 郭德纲]  

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

原文:http://blog.csdn.net/hu_shengyang/article/details/38384839
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: