环境:用axis2生成服务端,用aixs做客户端

1:直接返回String[];

public String[] testArr(String name) {

String[] ret=new String[]{"一二三四五","上山打老虎",name};

return ret;

}

发布后,wsdl为:

而普通返回String方法的格式为:

可以看到,返回String[]比返回String的响应中多了一个参数maxOccurs=”unbounded”

用axis做客户端调用这个接口如下:

说明:服务端返回String[]的时候,实际返回的是一个List,里面的元素是String类型的;

Call.setReturnClass的时候,这里设置的是List里面的元素类型String,而不是这个List.class

Invoke方法接口结果的时候,再强转成List即可;

2:返回二维数组String[][];并且里面只包含一个一维数组

特别注意,这里仅仅是将一维数组外面再包一层数组,也就是说返回的二维数组里面只有1个一维数组,而不是多个一维数组

public String[][] testArr2(String name) {

String[] ret=new String[]{"一二三四五","上山打老虎",name};

String[][] ret1=new String[][]{ret};

return ret1;

}

生成的wsdl如下:

可以看到,响应有2个部分,一个是指明返回类型为ArrayOfString数组类型,注意不是List了,二个是这个ArrayOfString里面的元素是String;

axis客户端解析:

2.1:写法1

Returnclass直接设置String[].class,调用接口后直接强转成String[];也就是说,服务端那边原生方法返回的是一个String[][]二维数组,且只包含1个一维数组,但在客户端这边,其实就是一个一维数组;按普通一维数组解析即可:

2.2:写法2

3:返回String[][],但是里面包含多个一维数组;

此情况与2不一样,因为2中是直接接受二维数组里面的那个唯一的一维数组,而这里有多个一维数组,对这种情况,按方法2中直接写call.setReturnClass(String[].class);会直接报错,必须按2.2中的写法2来写,需要call.setReturnType(org.apache.axis.Constants.SOAP_VECTOR);

对应Wsdl文件中的返回类型ArrayOfString

注意,这种情况下,取得的结果,需要对list中的每个元素强转成Vector数组;

总结,当返回的是String[][]的时候,直接在客户端这边,setReturnType(org.apache.axis.Constants.SOAP_VECTOR)即可;

如果发回的二维数组中只有1个一维数组,强转的list就是那个一维数组,即一维数组基本元素String的集合;如果有多个一维数组,强转的list是Vector一维数组的集合

axis2生成webservice服务端返回String[]和String[][]一维数组和二维数组解析的更多相关文章

  1. 根据wsdl反向生成webservice服务端(3种方法)

    前言 正常情况下,都是我们项目组创建一个webservice服务端,客户通过我们提供的wsdl地址生成客户端并进行访问:但是最近和一个国企做接口对接,他们却只提供给我们wsdl,需要我们根据wsdl生 ...

  2. Axis2创建WebService服务端接口+SoupUI以及Client端demo测试调用

    第一步:引入axis2相关jar包,如果是pom项目,直接在pom文件中引入依赖就好 <dependency> <groupId>org.apache.axis2</gr ...

  3. 记一次在Eclipse中用Axis生成webservice服务端的过程中出现的问题

    问题一. Unable to find config file.  Creating new servlet engine config file: /WEB-INF/server-config.ws ...

  4. C#根据WSDL文件生成WebService服务端代码

    转自:http://www.cnblogs.com/liyi93/archive/2012/01/30/2332320.html 虽然现在已经进入了.NET FrameWork 4.0的时代,WebS ...

  5. MyEclipse创建WebService服务端和客户端

    1.新建立一个javaWeb项目,一个java类,如图: 2.接下来我们就要将项目中的TestService的这个类生成WebService服务端,选择new Web Service,如图: Next ...

  6. 一维、二维数组 与 常用的返回数组 以及 fetch_all与fetch_row的区别

    一维数组:单行单列的数组. 二维数组:多行多列的数组.       (至少两行两列) 索引数组: fetch_all() 返回所有数组 fetch_row() 返回一行或一列数组  (第二行需要输入两 ...

  7. webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成

    首先到CXF官网及spring官网下载相关jar架包,这个不多说.webservice是干嘛用的也不多说. 入门例子 模拟新增一个用户,并返回新增结果,成功还是失败. 大概的目录如上,很简单. Res ...

  8. 在Android中调用KSOAP2库访问webservice服务出现的服务端返回AnyType{}

    最近在做毕业设计的时候,涉及到了安卓端访问web service服务端数据库,并返回一个值,当我把web service测试通过后,想写一个简单的安卓测试程序,来实现服务端数据库访问,通过web se ...

  9. webservice快速入门-使用wsimport生成ws服务端(二)

    上个例子演示的是在当前项目下发布的Webservice Server,而实际应用中和Client是分离的,本文介绍两种客户端开发方式: 1.导出WebService服务端服务接口到jar包,客户端引入 ...

随机推荐

  1. 2018.5.9 Oracle数据库查询命令

    0.查询所有数据(最简单,但是时间很久) select * from emp; Result: EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- - ...

  2. JavaScript操作DOM

    1.DOM对象简介: 什么是DOM:(Document Object Model) 译为文档对象模型,是 HTML 和 XML 文档的编程接口.   2.DOM HTML 节点树:指的是DOM中为操作 ...

  3. php的字符转换 & php登入注册界面设计以及源码 & 分离公共部分

    我们在编写的时候总是会出现乱码 https://www.cnblogs.com/mafeng/p/5827215.html php登入注册界面设计以及源码 https://blog.csdn.net/ ...

  4. 多线程编程之pthread线程深入理解

    不同的平台和操作系统上 进程和线程的实现机制不完全一致  但是一般来说线程栈都是独立的 只要得到地址就可以相互访问       Pthread是 POSIX threads 的简称,是POSIX的线程 ...

  5. 关于bc中小数点length,scale,(())以及进制转换

    这是我在codewar上遇到的一个题,我用我自己的方法做出了解答,如下: 1 #!/bin/bash 2 3 distance=`echo "$1*10000"|bc|cut -d ...

  6. windows 2008r2+php5.6.28环境搭建详细过程

    安装IIS7 安装php 网站验证 安装IIS7 1.打开服务器管理器(开始-计算机-右键-管理-也可以打开),添加角色 直接下一步 勾选Web服务器(IIS),下一步,有个注意事项继续下一步(这里我 ...

  7. Linux 文本编辑常用快捷键

    一.编辑模式 vim有三种编辑模式 1. i 进入文本编辑模式 2. esc 进入命令编辑模式 命令编辑状态下 dd删除整行 3. :进入底行模式 底行模式状态  输入q 退出 w保存  wq 保存并 ...

  8. 【js】【转发】jreturn;、return true、return false;区别

    一.返回控制与函数结果, 语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果  二.返回控制, 无函数结果,语法为:return;  在大多数情况下,为事件 ...

  9. 数据库储存session信息代码

    今天给大家上一段代码,数据库存储session信息,你只需要将下面这段代码放到session文件中,然后再session_start()的地方引入sessiong文件就行啦,当然你就不用再写sessi ...

  10. python 数据结构与算法之排序(冒泡,选择,插入)

    目录 数据结构与算法之排序(冒泡,选择,插入) 为什么学习数据结构与算法: 数据结构与算法: 算法: 数据结构 冒泡排序法 选择排序法 插入排序法 数据结构与算法之排序(冒泡,选择,插入) 为什么学习 ...