环境:用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. jQuery JavaScript Library v3.2.1

    /*! * jQuery JavaScript Library v3.2.1 * https://jquery.com/ * * Includes Sizzle.js * https://sizzle ...

  2. Node.js 中文学习资料和教程导航

    这篇文章来自 Github 上的一位开发者收集整理的 Node.js 中文学习资料和教程导航.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念,它的目标是帮助程 ...

  3. MySQL创建数据库,用户,赋予权限

    CREATE DATABASE 'voyager'; CREATE DATABASE `voyager`; CREATE USER 'dog'@'localhost' IDENTIFIED BY '1 ...

  4. Oracle rownum的理解

    核心过程分三步: 从表中取出行(无索引的话,顺序取出). 根据当前结果集,为当前行添加rownum. 条件筛选,如通过则添加到结果集中. 完.

  5. ccf 201712-3 Crontab(Python实现)

    一.原题 问题描述 试题编号: 201712-3 试题名称: Crontab 时间限制: 10.0s 内存限制: 256.0MB 问题描述: 样例输入 3 201711170032 201711222 ...

  6. 优酷项目之 ORM(数据库对象关系映射)代码重写

    前言: 我们在操作数据库时候一般都是通过sql代码来操作mysql数据库中相关数据,这就需要懂得sql语句,那么怎么样才能在不懂sql语句的情况下通过我们所学的python代码来实现对mysql数据库 ...

  7. makedown语法

    文章转载至:https://blog.csdn.net/u014061630/article/details/81359144#1-%E5%BF%AB%E6%8D%B7%E9%94%AE 前言 写过博 ...

  8. 记一次虚拟机无法挂载volume的怪异问题排查

    故障现象 使用nova volume-attach <server> <volume>命令挂载卷,命令没有返回错误,但是查看虚拟机状态,卷并没有挂载上. 故障原因 疑似虚拟机长 ...

  9. Monkeyrunner脚本的录制与回放

    继上一篇monkeyrunner环境搭建:http://www.cnblogs.com/zh-ya-jing/p/4351245.html 之后,我们可以进一步学习monkeyrunner了. 我也是 ...

  10. 03008_ServletContext

    1.什么是ServletContext? (1)ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象    内部封装是该web应用的信息,Servle ...