加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

【WebService学习过程记录(五)】复杂对象的加入

发布时间:2020-12-16 22:04:42 所属栏目:安全 来源:网络整理
导读:学习地址:http://blog.csdn.net/alex197963/article/details/4366867 学习目标:使用javabean作为参数或返回值的使用方式 学习重点:在之前学习的基础上,学会使用 .aegis.xml 文件 学习项目记录 1、按照 ?XFire开发Web Service---HelloWord ?? 建立可以发

学习地址: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 ?
  1. package?com.cn.rwq.test.jiekou;??
  2. ??
  3. import?com.cn.rwq.javabean.Person;??
  4. public?interface?IHelloS?{??
  5. ????/**?
  6. ?????*?最简单的方法?
  7. ?????*/??
  8. ????String?sayHello(String?name);??
  9. ?????*?根据传入的参数构建一个Person?
  10. ????Person?creatPerson(String?name,int?age,boolean?sex);??
  11. ?????*?将传入的Person转化成一个新的Person??
  12. ????Person?changePerson(Person?person);??
  13. }??

?HelloService 实现

copy

?package?com.cn.rwq.test.service;??
  • import?com.cn.rwq.test.jiekou.IHelloS;??
  • ??
  • class?HelloService?implements?IHelloS{????
  • ????public?String?sayHello(String?name){????
  • ????????return?name+",你好!";????
  • ????}????
  • public?Person?creatPerson(String?name,255); font-weight:bold; background-color:inherit">boolean?sex){??
  • ????????Person?user?=?new?Person();??
  • ????????user.setName(name);??
  • ????????user.setAge(age);??
  • ????????user.setSex(sex);??
  • return?user;??
  • ????}??
  • public?Person?changePerson(Person?person){??
  • new?Person();??
  • ????????user.setName(person.getName()+);??
  • ????????user.setAge(person.getAge()+2);??
  • ????????user.setSex(!person.isSex());??
  • return?user;??
  • ????}??
  • }????
  • Person实体类

    copy

    ?package?com.cn.rwq.javabean;??
  • class?Person?{??
  • private?String?name;??
  • private?int?age;??
  • boolean?sex;??
  • public?String?getName()?{??
  • return?name;??
  • void?setName(String?name)?{??
  • this.name?=?name;??
  • int?getAge()?{??
  • return?age;??
  • void?setAge(int?age)?{??
  • this.age?=?age;??
  • boolean?isSex()?{??
  • return?sex;??
  • void?setSex(boolean?sex)?{??
  • this.sex?=?sex;??
  • }??
  • IHelloS.aegis.xml
    [html]? copy
    ??
      <?xml?version="1.0"?encoding="UTF-8"?>????
    1. ????<mappings>????
    2. ????????mapping>????
    3. ????????????method?name="creatPerson"?????????????????parameter?index="1"?class="int"?/>????
    4. ????????????????parameter?index="2"?class="boolean"?/>????
    5. return-type?componentType="com.cn.rwq.javabean.Person"?</methodmethod?name="changePerson"parameter?index="0"?componentType="com.cn.rwq.javabean.Person"????>????
    services.xml 注意:namespace是建立客户端时代码生成的包名,倒序

    copy
    ?<!--?START?SNIPPET:?services?-->????
  • beans?xmlns="http://xfire.codehaus.org/config/1.0"??servicename>HelloService??????namespace>http://jiekou.test.rwq.com.cn/IHelloSserviceClass>com.cn.rwq.test.jiekou.IHelloS???????implementationClass>com.cn.rwq.test.service.HelloService>??
  • beans<!--?END?SNIPPET:?services?-->????
  • web.xml与之前相同,省略
    4、发布,并测试正确

    5、建立客户端,测试

    按照xfire开发webservice客户端建立客户端

    客户端测试代码

    copy

    ?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;??
  • class?HelloTest?{????
  • ???????/**???
  • ?????????*?这个方法调用web服务并返回服务执行的结果?
  • ?????????*?@param?yourName?
  • ?????????*?@return?
  • ?????????*/????
  • ????????
  • 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);??
  • "name="+newPerson.getName().getValue()+"?;?age="+newPerson.getAge()+"?;?sex="+newPerson.isSex());??
  • ????????}????
  • }???
  • 注意:person.getName()无法直接得到name值需要使用person.getName().getValue() 问题解决学习地址:http://www.2cto.com/kf/201211/166568.html

    6、正确运行结果

    zhangsan,你好!
    name=张三 ; age=10 ; sex=false
    name=张三,hello ; age=12 ; sex=true

    正常完成

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读