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.}

相关文章
|
3月前
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
|
25天前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
1月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
143 0
|
3月前
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
3月前
|
开发者 Java Spring
【绝技揭秘】掌握Vaadin数据绑定:一键同步Java对象,告别手动数据烦恼,轻松玩转Web应用开发!
【8月更文挑战第31天】Vaadin不仅是一个功能丰富的Java Web应用框架,还提供了强大的数据绑定机制,使开发者能轻松连接UI组件与后端Java对象,简化Web应用开发流程。本文通过创建一个简单的用户信息表单示例,详细介绍了如何使用Vaadin的`Binder`类实现数据绑定,包括字段与模型属性的双向绑定及数据验证。通过这个示例,开发者可以更专注于业务逻辑而非繁琐的数据同步工作,提高开发效率和应用可维护性。
88 0
|
3月前
|
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.
|
3月前
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
|
3月前
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
|
3月前
|
Linux Python
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
|
3月前
|
存储 安全 网络安全
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
下一篇
无影云桌面