web service axis2 参数为对象传递

简介: web service axis2 参数为对象传递

首先建立ServiceTest.java


Java代码

1.package sample.ws.service;

2.

3.import sample.ws.pojo.Person;

4.

5.public class ServiceTest {

6./**

7. * 很简单我们只是将发过来的person[]返回去

8. * @param person

9. * @return

10. */

11.    public Person[] getPerson(Person[] person){

12.        

13.//      Person person1 = new Person();

14.//      person1.setAge("20");

15.//      person1.setName("张三");

16.//      

17.//      Person person2 = new Person();

18.//      person2.setAge("30");

19.//      person2.setName("李四");

20.//      

21.//      Person[] person3 = new Person[2];

22.//      person3[0] = person1;

23.//      person3[1] = person2;

24.//      System.out.println("afd");

25.        return person;

26.    }

27.        

28.        

29.}

package sample.ws.service;


import sample.ws.pojo.Person;


public class ServiceTest {

/**

* 很简单我们只是将发过来的person[]返回去

* @param person

* @return

*/

   public Person[] getPerson(Person[] person){

     

//        Person person1 = new Person();

//        person1.setAge("20");

//        person1.setName("张三");

//      

//        Person person2 = new Person();

//        person2.setAge("30");

//        person2.setName("李四");

//      

//        Person[] person3 = new Person[2];

//        person3[0] = person1;

//        person3[1] = person2;

//        System.out.println("afd");

       return person;

   }

     

     

}


pojo Person.java 不变





Java代码

1.public class Person{

2.

3.    private String name ;

4.

5.    public String getName() {

6.        return name;

7.    }

8.

9.    public void setName(String name) {

10.        this.name = name;

11.    }

12.    

13.}

public class Person{


   private String name ;


   public String getName() {

       return name;

   }


   public void setName(String name) {

       this.name = name;

   }

 

}


services.xml 也保持不变;



Java代码

1.<?xml version="1.0" encoding="UTF-8"?>

2.

3.

4.<service name="TestService" scope="application">

5.        <description>TestService</description>

6.

7.    <messageReceivers>    

8.    <messageReceiver    

9.            mep="http://www.w3.org/2004/08/wsdl/in-only"  

10.    class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>    

11.        <messageReceiver    

12.            mep="http://www.w3.org/2004/08/wsdl/in-out"  

13.    class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>    

14.    </messageReceivers>  

15.    <parameter name="ServiceClass">

16.    sample.ws.service.ServiceTest

17.    </parameter>

18.    

19.</service>

<?xml version="1.0" encoding="UTF-8"?>



<service name="TestService" scope="application">

       <description>TestService</description>


   <messageReceivers>

   <messageReceiver  

           mep="http://www.w3.org/2004/08/wsdl/in-only"

   class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>

       <messageReceiver

           mep="http://www.w3.org/2004/08/wsdl/in-out"

   class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>

   </messageReceivers>

   <parameter name="ServiceClass">

   sample.ws.service.ServiceTest

   </parameter>

 

</service>


下面就是客户端了:


1、 pojo Person.java 保持不变



Java代码

1.public class Person{

2.

3.    private String name ;

4.

5.    public String getName() {

6.        return name;

7.    }

8.

9.    public void setName(String name) {

10.        this.name = name;

11.    }

12.    

13.}

public class Person{


   private String name ;


   public String getName() {

       return name;

   }


   public void setName(String name) {

       this.name = name;

   }

 

}


2、请求客户端 Ws2pojoClient.java



Java代码

1.package sample.ws.client;

2.

3.import javax.xml.namespace.QName;

4.

5.import org.apache.axis2.addressing.EndpointReference;

6.import org.apache.axis2.client.Options;

7.import org.apache.axis2.rpc.client.RPCServiceClient;

8.

9.import sample.ws.pojo.Person;

10.

11.public class Ws2pojoClient {

12.

13.    public static void main(String args[]) throws java.lang.Exception {

14.

15.        RPCServiceClient client = new RPCServiceClient();

16.

17.        Options option = client.getOptions();

18.        // 指定客户端访问的webservice服务器端地址

19.        EndpointReference erf = new EndpointReference(

20.                "http://localhost:9999/Ws2Pojo/services/TestService");

21.

22.        option.setTo(erf);

23.        // 指定命名空间,指定要调用的方法

24.        QName name = new QName("http://service.ws.sample", "getPerson");

25.        // 创建Person对象

26.        Person person1 = new Person();

27.        person1.setAge("20");

28.        person1.setName("张三");

29.

30.        Person person2 = new Person();

31.        person2.setAge("30");

32.        person2.setName("李四");

33.        // 创建Person数组

34.        Person[] person3 = new Person[2];

35.        person3[0] = person1;

36.        person3[1] = person2;

37.

38.        // 创建要传送的object数组

39.        Object[] object = new Object[] { person3 };

40.        // 创建返回的参数类型

41.        Class[] returnTypes = new Class[] { Person[].class };

42.        // 调用远程服务,得到返回的object数组

43.        Object[] response = client.invokeBlocking(name, object, returnTypes);

44.        // 强制转换成Person[]对象

45.

46.        Person[] p = (Person[]) response[0];

47.        // 遍历得到我们刚刚请求过去的值

48.        for (int i = 0; i < p.length; i++) {

49.            System.out.println(p.getAge());
50.            System.out.println(p.getName());
51.        }
52.
53.    }
54.}

相关文章
|
10月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
228 0
|
存储 JSON JavaScript
WEB CAD插件通过上下文对象MxPluginContext修改UI界面的方法
本文介绍了如何使用MxPluginContext动态控制MxCAD项目的UI界面。通过该上下文对象,开发者可以灵活设置UI配置,如控制操作栏显隐、编辑按钮、添加侧边栏等。具体方法包括调用`getUiConfig()`获取并修改`mxUiConfig.json`中的属性,实现界面的定制化。此外,还提供了控制命令行聚焦的功能,解决输入框焦点锁定问题。详细代码示例和效果对比图展示了具体实现步骤,帮助开发者更好地适配项目需求。
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
284 2
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
156 0
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
2079 0
|
开发者 Java Spring
【绝技揭秘】掌握Vaadin数据绑定:一键同步Java对象,告别手动数据烦恼,轻松玩转Web应用开发!
【8月更文挑战第31天】Vaadin不仅是一个功能丰富的Java Web应用框架,还提供了强大的数据绑定机制,使开发者能轻松连接UI组件与后端Java对象,简化Web应用开发流程。本文通过创建一个简单的用户信息表单示例,详细介绍了如何使用Vaadin的`Binder`类实现数据绑定,包括字段与模型属性的双向绑定及数据验证。通过这个示例,开发者可以更专注于业务逻辑而非繁琐的数据同步工作,提高开发效率和应用可维护性。
307 0
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
266 0
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
175 0
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
374 0
下一篇
开通oss服务