`
taomujian
  • 浏览: 109663 次
  • 性别: Icon_minigender_1
  • 来自: 安徽-合肥
社区版块
存档分类
最新评论

WebService之axis2的使用(四)

阅读更多

                         传递一个复杂的参数

例如在server端有类如下

package simple;

 

public class Hello {

    public Hello(){};

   

    public String sayHello(JavaBean javaBean){

       System.out.println("hello"+javaBean.getName());

       return "hello"+javaBean.getName();

    }

}

 

以及对应的一个类名为JavaBean的类

那这时如何传递参数呢。

在我们生成的客户端stub代码中其实包含了该参数所引用的类的描述,即在sutb类中包含了一个JavaBean的内部类

下面是具体的客户端调用时设置参数的方法

 

import java.rmi.RemoteException;

 

import org.apache.axis2.AxisFault;

 

public class Test {

   

    public static void main (String []args) throws RemoteException{

       HelloWSStub stub = new HelloWSStub();//new一个stub对象

      

       HelloWSStub.SayHello sayHello = new HelloWSStub.SayHello();//获取到暴露的sayHello对象

      

       /**

        * 注意这里,客户端自动生成的stub代码已经包含了复杂参数对应的类作为内部类,

        * 所以在这里我们就可以实例化这个类,切忌是HelloWSStub的内部类哦

        */

       HelloWSStub.JavaBean javaBean = new HelloWSStub.JavaBean();

        /**

        *

        * 设置我们传递参数具体的值

        * */

       javaBean.setName("张飞");

      

       /**

        * 设置调用sayHello方法时需要传递的参数

        * */

       sayHello.setJavaBean(javaBean);

      

       HelloWSStub.SayHelloResponse response = stub.sayHello(sayHello);//获取执行后的返回值

      

       System.out.println("Response : " + response.get_return());//打印

    }

}

附件包括源码以及生成后的*.aar文件

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics