我們還是用上一小節中的那個項目
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"><messageReceiverclass="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介面。
教程源碼下載:
AxisTest
AxisSpring
AxisProject
轉載請標明出處http://blog.csdn.net/shimiso
歡迎有識之士加入我們的技術交流群:173711587