Axis Web Service开发之旅 (四) --复合类型数据的传递
来源:互联网 发布:python运维开发面试题 编辑:程序博客网 时间:2024/06/06 21:02
在实际的应用中,不仅需要使用WebService来传递简单类型的数据,有时也需要传递更复杂的数据,这些数据可以被称为复合类型的数据。数组与类(接口)是比较常用的复合类型。在Axis2中可以直接使用将WebService方法的参数或返回值类型声明成数组或类(接口)。但要注意,在定义数组类型时只能使用一维数组,如果想传递多维数组,可以使用分隔符进行分隔,如下面的代码所示:
String[] strArray = new String[]{ "自行车,飞机,火箭","中国,美国,德国", "超人,蜘蛛侠,钢铁侠" } ;
上面的代码可以看作是一个3*3的二维数组。
在传递类的对象实例时,除了直接将数组类型声明成相应的类或接口,也可以将对象实例进行序列化,也就是说,将一个对象实例转换成字节数组进行传递,然后接收方再进行反序列化,还原这个对象实例。
下面的示例代码演示了如何传递数组与类(接口)类型的数据,并演示如何使用字节数组上传图像。本示例的客户端代码使用Java和C#编写。要完成这个例子需要如下几步:
ComplexTypeService是一个WebService类,该类的代码如下:
DataForm是要返回的对象实例所对应的类,该类的实现代码如下:
由于本示例的WebService类使用了一个Java类(DataForm类),因此,在发布WebService之前,需要先将DataForm.class文件复制到<Tomcat安装目录>/webapps/axis2/WEB-INF/classes/data目录中,然后将ComplexTypeService.class文件复制到<Tomcat安装目录>/webapps/axis2/WEB-INF/pojo目录中,最后启动Tomcat(如果Tomcat已经启动,由于增加了一个DataForm类,因此,需要重新启动Tomcat)。
在客户端仍然使用了RPC的调用方式,代码如下:
在Visual Studio中使用WebService就简单得多。假设引用WebService时的引用名为complexType,则下面的代码调用了uploadImageWithByte方法来上传图像文件。在Visual Studio引用WebService时,uploadImageWithByte方法多了两个out参数,在使用时要注意。
在获得二维数组时,可以将数据加载到DataGridView或其他类似的控件中,代码如下:
要注意的是,由于.net和java序列化和反序列化的差异,通过序列化的方式传递对象实例只使用于客户端与服务端为同一种语言或技术的情况,如客户端和服务端都使用Java来编写。
如果读者要上传大文件,应尽量使用FTP的方式来传递,而只通过WebService方法来传递文件名等信息。这样有助于提高传输效率。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/crazystone4/archive/2009/06/20/4285722.aspx
- Axis Web Service开发之旅 (四) --复合类型数据的传递
- Axis Web Service开发之旅 (四) --复合类型数据的传递
- WebService之Axis2(2):复合类型数据的传递
- Axis Web Service开发之旅 (一)--配置发布
- Axis Web Service开发之旅 (五) --二进制文件传输
- Axis Web Service开发之旅 (一)--配置发布
- Axis Web Service开发之旅 (五) --二进制文件传输
- Web Service之AXIS传递javabean
- Axis Web Service开发之旅 (三) --将Spring的装配JavaBean发布成WebService
- Axis Web Service开发之旅 (三) --将Spring的装配JavaBean发布成WebService
- axis2实现WebService之复合类型数据的传递
- WebService大讲堂之Axis2(2):复合类型数据的传递
- Axis 开发web service
- WebService大讲堂之Axis2(2):复合类型数据的传递 (转载)
- WebService大讲堂之Axis2(2):复合类型数据的传递
- WebService大讲堂之Axis2(2):复合类型数据的传递
- WebService大讲堂之Axis2(2):复合类型数据的传递
- WebService大讲堂之Axis2(2):复合类型数据的传递
- c#入门笔记
- 最近电脑经常出现IE错误,具体解决方法请看以下内容。
- 数据结构的应用——使用栈实现任意迷宫的求解
- Lambda表达式--NET4
- 转:libcurl 应用
- Axis Web Service开发之旅 (四) --复合类型数据的传递
- Axis Web Service开发之旅 (五) --二进制文件传输
- strchr strrchr
- 基于mes的车间质量管理系统设计与实现
- 配置KCONFIG 出错
- 我毕业之后到现在
- 大二了
- linux中ELF加载过程分析
- 一篇很好的讲解http文章