1、在服务器端建立一个Person类,内容如下:
package sample.service;
//一定要实现java.io.Serializable接口
public class Person implements java.io.Serializable{
??private String name ;
?
??private String age;
??public String getName() {
?? ?return name;
? }
? public void setName(String name) {
??? this.name = name;
?}
?public String getAge() {
??return age;
?}
?public void setAge(String age) {
??this.age = age;
?}
}
?
在 ServiceServer类中增加如下方法
?
package sample.service;
public class ServiceServerImpl implements ServiceServer {
//定义sayHello 方法
?public String sayHello(String name);
//定义getperson 方法
?public Person getPerson(Person person);
?
}
?
?
在相应的实现类中增加内容如下:
?
package sample.service;
public class ServiceServerImpl implements ServiceServer {
//定义sayHello 方法
?public String sayHello(String name) {
??
??return "hello"+name;
?}
//定义getperson 方法,传递Person对象
?public Person getPerson(Person person) {
??
??return person;
?}
}
?
在services.xml中增加
?
?<operation name="getPerson">
???<messageReceiver
????class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
?</operation>
?
?
?2、通过wsdl的方式自动生成客户端:
3、ServiceClient客户端中建立ServiceClientPerson类,内容如下:
package sample.service;
public class ServiceClientPerson {
?/**
? * @param args
? */
?public static void main(String[] args) throws java.lang.Exception {
??HelloWorldStub stub = new HelloWorldStub();
//??创建Person对象
??HelloWorldStub.Person person = new HelloWorldStub.Person();
??person.setAge("23");
??person.setName("张三");
//??设置要调用的方法的值
??HelloWorldStub.GetPerson getPerson = new HelloWorldStub.GetPerson();
??getPerson.setPerson(person);
//??调用getPerson并得到相应的返回值
??HelloWorldStub.GetPersonResponse response = stub.getPerson(getPerson);
??
??System.out.println("age="+ response.get_return().getAge());
??System.out.println("name="+ response.get_return().getName());
??
?}
}
?
4、运行后在console中打印出
age=23
name=张三
说明调用成功
一定要注意的是,建立的Person一定要实现java.io.Serializable接口。