Axis2Service客户端访问通用类集合List自定义类型

Axis2 服务四种客户端调用方式:

1.AXIOMClient

2.generating a client using ADB

3.generating a client using XMLBeans

4.generating a client using JiBX

http://axis.apache.org/axis2/java/core/ 官方

搜索了很多资料,没有找到合适的。不论是插件生成还是AXIOMClient使用起来都很麻烦。

service:

public interface TestService {
	public List<Person> findAll();
	public Person getWhere(List<Person> persons);//3.传入集合,返回对象
	public List<Person> getWheres(List<Person> persons);//4.传入集合,返回集合
	public Person getChild(Person p); //1.传入对象,返回对象
	public List<Person> getChildren(Person p);//2.传入对象,返回集合

}

要达成上面的目的应该能够满足大部分场景的使用。那么我们接下在这样做。

client:

1.传入对象,返回对象

 private static  void test01ParameterIsObjectReturnObject()
    {
        //客户端调用要简单。传入下面的值就能调用服务方法
        //服务地址,命名空间,方法名,参数
     System.out.println("=====================test01[the parameter is a object and return a object] begin:");
        axis2Context.setFunctionName("getChild");
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("p", CreatePerson());
        axis2Context.setFunctionPrameters(map);
        Person person = Axis2Help.invoke(axis2Context, Person.class);
        System.out.println("the result:" + person.getName());
        System.out.println("=============================================================================end");
    }

 返回结果:

==========================================test01[the parameter is a object and return a object] begin:
the result:张三返回值
=============================================================================end

2.传入对象,返回集合

 private static  void test02ParameterIsObjectReturnList()
    {
        System.out.println("=====================test02[the parameter is a object and return list] begin:");
        axis2Context.setFunctionName("getChildren");
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("p", CreatePerson());
        axis2Context.setFunctionPrameters(map);
        List<Person> persons = Axis2Help.invokeForList(axis2Context, Person.class);
        System.out.println("the result persons.size():" + persons.size() );
        System.out.println("=============================================================================end");
    }

 返回结果:

==========================================test02[the parameter is a object and return list] begin:
the result persons.size():2
=============================================================================end

3.传入集合返回对象

 System.out.println("=====================test03[the parameter is list and return a object] begin:");
        axis2Context.setFunctionName("getWhere");
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("persons", CreatePersonList());
        axis2Context.setFunctionPrameters(map);
        Person person = Axis2Help.invoke(axis2Context, Person.class);
        System.out.println("the result:" + person.getName());
        System.out.println("=============================================================================end");

  返回结果:

=====================test03[the parameter is list and return a object] begin:
the result:张三:返回值
=============================================================================end

4.传入集合返回集合

 private static  void test04ParameterIsListReturnList()
    {
        System.out.println("=====================test04[the parameter is list and return a list] begin:");
        axis2Context.setFunctionName("getWheres");
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("persons", CreatePersonList());
        axis2Context.setFunctionPrameters(map);
        List<Person> persons = Axis2Help.invokeForList(axis2Context, Person.class);
        System.out.println("the result:" + persons.size());
        System.out.println("=============================================================================end");
    }

  返回结果:

==========================================test04[the parameter is list and return a list] begin:
the result:2
=============================================================================end

参数类型:Person 是复杂自定义类型。

结束

时间: 2024-10-11 18:07:34

Axis2Service客户端访问通用类集合List自定义类型的相关文章

C#---数据库访问通用类、Access数据库操作类、mysql类 .[转]

原文链接 //C# 数据库访问通用类 (ADO.NET)using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration; namespace XXX{    /// <summary>    /// 针对SQL Server数据库操作的通用类           /// </sum

C#---数据库访问通用类、Access数据库操作类、mysql类 .

//C# 数据库访问通用类 (ADO.NET)using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration; namespace XXX{    /// <summary>    /// 针对SQL Server数据库操作的通用类           /// </summary&

去除List集合中的重复元素? 如果没有Set集合,List集合是怎么去除重复元素的(字符串类型,自定义类型)?

 关键字: 如果没有Set集合,List集合是怎么去除重复元素的(字符串类型)?  *   *     思考: List就可以存储重复元素,那么需求中容器中的元素必须保证唯一性,该如何解决呢??  *      *   去除List集合中的重复元素?  * * 思路: * * 1.首先我需要另一个临时容器tempList,用来存放我认为应该保留的元素.(也就是不重复的元素) * 2.然后我们应该遍历原容器, 一个一个的取出元素, 放入tempList. * 当tempList里已经装有刚刚取出的

MVC AJAX导出Excel通用类

通用类: public enum DataTypeEnum { Int = 0, Float = 1, Double = 2, String = 3, DateTime = 4, Date = 5 } public class ExportFieldInfo { /// <summary> /// 字段名,用于反射获取值 /// </summary> public string FieldName { get; set; } /// <summary> /// 中文名,

poi导出excel通用类

一.关键的通用类public class PoiExportUtils {    private static HSSFWorkbook workBook; public PoiExportUtils(){        workBook = new HSSFWorkbook();    }        /**     * 创建sheet     * @param sheetName     * @param workBook     * @return     */    public st

MVC NPOI Linq导出Excel通用类

之前写了一个模型导出Excel通用类,但是在实际应用中,可能不是直接导出模型,而是通过Linq查询后获取到最终结果再导出 通用类: public enum DataTypeEnum { Int = 0, Float = 1, Double = 2, String = 3, DateTime = 4, Date = 5 } public class ExportFieldInfo { /// <summary> /// 字段名,用于反射获取值 /// </summary> publi

mongdo通用类(C#版)

日前从公司离职,很快,还没休息就步入了现在的公司,开始跟着公司的脚步走. 公司的项目基本都是大数据的,所以在数据库上大部分都是使用Mongodb和Redis,基本都是Nosql型的数据库为主.以前自己学着做过Mongodb和Redis的Demo,大体知道其怎么去运用,只是没有一个规范化的封装和运用,单纯是学习.现在有实战项目了,就激起了我前进学习的心,趁着今天自己查了下一些资料,学习了借鉴了一些前辈的方法后自己也封装了一个Mongdb的底层通用类,这里分享出来跟大家一起学习下. 这里主要是讲我封

类模板,多种类型的类模板,自定义类模板,类模板的默认类型,数组的模板实现,友元和类模板,友元函数,类模板与静态变量,类模板与普通类之间互相继承,类模板作为模板参数,类嵌套,类模板嵌套,类包装器

 1.第一个最简单的类模板案例 #include "mainwindow.h" #include <QApplication> #include <QPushButton> #include <QLabel> template<class T> class run { public: T w; void show() { w.show(); } void settext() { w.setText("A"); }

java编程排序之自定义类型的集合,按业务需求排序

自定义引用类型放入集合中,按实际业务需求进行排序的两种思路 第一种思路: (1)自定义实体类实现java.lang.Comparable接口,重写public int compareTo(Object obj)方法.自定义业务比较规则 (2)利用java.util.Collections类的静态方法sort(List<自定义类型> list)进行排序(默认升序)或者.自己编写排序工具类.冒泡+compareTo(obj)方法 第二种思路 (1)自己编写业务比较规则类.实体类不用实现任何借口.业