学习地址:http://blog.csdn.net/alex197963/article/details/4366867 学习目标:使用javabean作为参数或返回值的使用方式 学习重点:在之前学习的基础上,学会使用 .aegis.xml 文件 学习项目记录 1、按
学习地址:http://blog.csdn.net/alex197963/article/details/4366867
学习目标:使用javabean作为参数或返回值的使用方式
学习重点:在之前学习的基础上,学会使用.aegis.xml文件
学习项目记录
1、按照 XFire开发Web Service---HelloWord 建立可以发布的web service项目,这里不做多余表述
2、文件夹目录如下
注意:需要一个xml文件来指定所需要的类型。这个文件的路径应该和接口的class文件在同一个包当中,并且它的名字应该是接口.aegis.xml
3、文件内容如下
IHelloS接口
[java] view plain copy print ?
- package com.cn.rwq.test.jiekou;
- import com.cn.rwq.javabean.Person;
- public interface IHelloS {
- /**
- * 最简单的方法
- */
- String sayHello(String name);
- /**
- * 根据传入的参数构建一个Person
- */
- Person creatPerson(String name,int age,boolean sex);
- /**
- * 将传入的Person转化成一个新的Person
- */
- Person changePerson(Person person);
- }
HelloService 实现
[java] view plain copy print ?
- package com.cn.rwq.test.service;
- import com.cn.rwq.javabean.Person;
- import com.cn.rwq.test.jiekou.IHelloS;
- public class HelloService implements IHelloS{
- public String sayHello(String name){
- return name+",你好!";
- }
- public Person creatPerson(String name,int age,boolean sex){
- Person user = new Person();
- user.setName(name);
- user.setAge(age);
- user.setSex(sex);
- return user;
- }
- public Person changePerson(Person person){
- Person user = new Person();
- user.setName(person.getName()+",hello");
- user.setAge(person.getAge()+2);
- user.setSex(!person.isSex());
- return user;
- }
- }
[java] view plain copy print ?
- package com.cn.rwq.javabean;
- public class Person {
- private String name;
- private int age;
- private boolean sex;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public boolean isSex() {
- return sex;
- }
- public void setSex(boolean sex) {
- this.sex = sex;
- }
- }
[html] view plain copy print ?
- <?xml version="1.0" encoding="UTF-8"?>
- <mappings>
- <mapping>
- <method name="creatPerson">
- <parameter index="1" class="int" />
- <parameter index="2" class="boolean" />
- <return-type componentType="com.cn.rwq.javabean.Person" />
- </method>
- <method name="changePerson">
- <parameter index="0" componentType="com.cn.rwq.javabean.Person" />
- <return-type componentType="com.cn.rwq.javabean.Person" />
- </method>
- </mapping>
- </mappings>
注意:namespace是建立客户端时代码生成的包名,倒序
[html] view plain copy print ?
- <!-- START SNIPPET: services -->
- <beans xmlns="http://xfire.codehaus.org/config/1.0">
- <service>
- <name>HelloService</name>
- <namespace>http://jiekou.test.rwq.com.cn/IHelloS</namespace>
- <serviceClass>com.cn.rwq.test.jiekou.IHelloS</serviceClass>
- <implementationClass>com.cn.rwq.test.service.HelloService</implementationClass>
- </service>
- </beans>
- <!-- END SNIPPET: services -->
4、发布,并测试正确
5、建立客户端,测试
按照xfire开发webservice客户端建立客户端
客户端测试代码
[java] view plain copy print ?
- package cn.com.rwq.hellotest;
- import cn.com.rwq.test.jiekou.ihellos.HelloServiceClient;
- import cn.com.rwq.test.jiekou.ihellos.HelloServicePortType;
- import com.cn.rwq.javabean.Person;
- public class HelloTest {
- /**
- * 这个方法调用web服务并返回服务执行的结果
- * @param yourName
- * @return
- */
- public static void main(String[] args) {
- HelloServiceClient service=new HelloServiceClient();
- HelloServicePortType port=service.getHelloServiceHttpPort();
- String MyName="zhangsan";
- String name = port.sayHello(MyName);
- System.out.println(name);
- Person person = port.creatPerson("张三", 10, false);
- System.out.println("name="+person.getName().getValue()+" ; age="+person.getAge()+" ; sex="+person.isSex());
- Person newPerson =port.changePerson(person);
- System.out.println("name="+newPerson.getName().getValue()+" ; age="+newPerson.getAge()+" ; sex="+newPerson.isSex());
- }
- }
问题解决学习地址:http://www.2cto.com/kf/201211/166568.html
6、正确运行结果
zhangsan,你好!
name=张三 ; age=10 ; sex=false
name=张三,hello ; age=12 ; sex=true
正常完成