传递一个复杂的参数
例如在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文件