zoukankan      html  css  js  c++  java
  • XFire下根据WSDL生成Client Stub,并测试Client

     在上篇文章中,已经讲到了如何使用XFire,Spring,Struts和WSDL生成Web Service服务器端代码,并通过WSDL动态测试,但是通过WSDL动态测试不是分布式的初衷,根据Client Stub才是真正的分布式.

           在下面我将在上篇文章的基础上,通过WSDL生成Client Stub,并且测试.

           其实网上有很多这方面的文章,但是我几乎尽我所能查遍了baidu,都是些翻译XFire用户文档,大家去看看XFire用户文档就会发觉其不知所云,非常模糊,根本无法学习,也许它只是为那些高手写的.

           下面是我通过搜索Google很久才有幸得到,在此一并感谢表示感谢.

           注意:二个JAR包不能少:xfire-all-1.2.6.jar,和jaxb-xjc-2.0.1.jar,为什么要,大家在以后的学习中就会发现的.

           一. 编写Ant脚本build.xml,就是用org.codehaus.xfire.gen.WsGenTask生成Client Stub,放在org.ymcn.ws.client下,其中的参数应用个人而异:

    <?xml version="1.0"?>
    <project default="genfiles" basedir=".">
        <property name="lib" value="WebRoot/WEB-INF/lib" />
        <path id="myclasspath">
            <fileset dir="${lib}">
                <include name="*.jar" />
            </fileset>
            <pathelement location="${genfiles}" />
        </path>
        <property name="code_path" value="src" />
        <property name="wsdl_path" value="http://192.168.1.102:8888/wss/HelloWorldService.ws?wsdl" />
        <property name="code_package" value="org.ymcn.ws.client" />
        <target name="genfiles" description="Generate the files">
            <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="myclasspath" />
            <wsgen outputDirectory="${code_path}" wsdl="${wsdl_path}" package="${code_package}" binding="xmlbeans" overwrite="true" />
        </target>
    </project>

         二.在MyEclipse中运行此Ant 脚本

         此时会在org.ymcn.ws.client下生成三个文件:HelloWorldClient.java, HelloWorldImpl.java, HelloWorldPortType.java,其中第一个和第三个是非常重要的.

         三.测试Client Stub:

    package org.ymcn.test.client;

    import org.ymcn.ws.client.HelloWorldClient;
    import org.ymcn.ws.client.HelloWorldPortType;

    public class HelloWorldJaxb {
    public static void main(String[] args) {
       try {
        HelloWorldClient client = new HelloWorldClient();
        HelloWorldPortType service = client.getHelloWorldHttpPort();
        String result = service.sayHello("老牛啊");
       
        System.out.println(result);
       
       } catch(Exception e) {
        e.printStackTrace();
       }
    }
    }

         在控制台输出:你好, 老牛啊, 成功.

         四.发布

         把那三个Stub打包,就可以在分布式环境下测试了.

  • 相关阅读:
    【译文】HTML5 Canvas的点击区域检测以及如何监听Canvas上各种图形的点击事件
    快速排序法精简理解
    数据结构--堆
    数据结构--哈希表
    数据结构--队列
    数据结构--栈
    数据结构--数组
    数据结构--链表
    算法的基本知识
    Arthas
  • 原文地址:https://www.cnblogs.com/cuker919/p/4878629.html
Copyright © 2011-2022 走看看