云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > axis2实现WebService之复合类型数据的传递

axis2实现WebService之复合类型数据的传递

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 16:11:08

axis2实现WebService之复合类型数据的传递

接着昨天的程序,今天又进了一步,学习了webservice的复合类型数据的传递,尤其是教程上没有的部分,我自己尝试着写,虽说耗费了一个下午的时间,但是还是非常值的,废话少说,看招!

在实际的应用中,不仅需要使用WebService来传递简单类型的数据,有时也需要传递更复杂的数据,这些数据可以被称为复合类型的数据。数组与类(接口)是比较常用的复合类型。在Axis2中可以直接使用将WebService方法的参数或返回值类型声明成数组或类(接口)。但要注意,在定义数组类型时只能使用一维数组,如果想传递多维数组,可以使用分隔符进行分隔,如下面的代码所示:

String[] strArray = new String[]{ \自行车,飞机,火箭\中国,美国,德国\

\超人,蜘蛛侠,钢铁侠\

上面的代码可以看作是一个3*3的二维数组。 在传递类的对象实例时,除了直接将数组类型声明成相应的类或接口,也可以将对象实例进行序列化,也就是说,将一个对象实例转换成字节数组进行传递,然后接收方再进行反序列化,还原这个对象实例。

下面的示例代码演示了如何传递数组与类(接口)类型

的数据,并演示如何使用字节数组上传图像。本示例的客户端代码使用Java编写。要完成这个例子需要如下几步:

一、实现服务端代码 [java] view plaincopy<span

style=\ import data.DataForm; public class ComplexTypeService { // 上传图像,imageByte参数表示上传图像文件的字节, // length参数表示图像文件的字节长度(该参数值可能小于imageByte的数组长度) public boolean uploadImageWithByte(byte[] imageByte, int length)

{ FileOutputStream fos = null; try { // 将上传的图像保存在D盘的test1.jpg文件中 fos = new

FileOutputStream(\ // 开始写入图像文件的字节 fos.write(imageByte, 0, length); fos.close(); } catch (Exception e) { return false; } finally { if (fos != null) { try

{ fos.close(); }

catch (Exception e)

{ } } } return true; } // 返回一维字符串数组 public String[] getArray() { String[] strArray = new String[]{ \自行车\飞机\火箭\ return strArray; } // 返回二维字符串数组 public String[] getMDArray() { String[] strArray = new String[]{ \自行车,飞机,火箭\中国,美国,德国\超人,蜘蛛侠,钢铁侠\ return strArray; } // 返回DataForm类的对象实例 public DataForm getDataForm() { return new

DataForm(); } // 将DataForm类的对象实例序列化,并返回序列化后的字节数组 public byte[] getDataFormBytes() throws Exception

{ java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); java.io.ObjectOutputStream oos = new java.io.ObjectOutputStream(baos);

oos.writeObject(new DataForm()); return baos.toByteArray(); } } </span> 二、实现DataForm类 [java] view plaincopy<span

style=\ public class DataForm implements java.io.Serializable { private String name = \ private int age = 20; setter…………getter方法 } </span> 三、发布WebService

由于本示例的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)。发布之后的结果如下图所示 [java] view plaincopy<span

style=\ [java] view plaincopy<p align=\style=\

style=\align=\</span></p><p align=\style=\

src=\

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

axis2实现WebService之复合类型数据的传递 接着昨天的程序,今天又进了一步,学习了webservice的复合类型数据的传递,尤其是教程上没有的部分,我自己尝试着写,虽说耗费了一个下午的时间,但是还是非常值的,废话少说,看招! 在实际的应用中,不仅需要使用WebService来传递简单类型的数据,有时也需要传递更复杂的数据,这些数据可以被称为复合类型的数据。数组与类(接口)是比较常用的复合类型。在Axis2中可以直接使用将WebService方法的参数或返回值类型声明成数组或类(接口)。但要注意,在定义数组类型时只能使用一维数组,如果想传递多维数组,可以使用分隔符进行分隔,如下面的代码所示: String[] strArray = new String[]{ \自行车,飞机,火箭\中国,美国,德国

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com