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

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

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

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 4:22:56

25.PNG\

四、使用Java编写调用WebService的客户端代码 在客户端仍然使用了RPC的调用方式,代码如下: [java] view plaincopy<span

style=\ import javax.xml.namespace.QName; import

org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import

org.apache.axis2.rpc.client.RPCServiceClient; public class ComplexTypeRPCClient { public static void main(String[] args) throws Exception

{ RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); EndpointReference targetEPR = new

EndpointReference( \/axis2/services/ComplexTypeService\ options.setTo(targetEPR); // 下面的代码调用uploadImageWithByte方法上传图像文件 // 打开图像文件,确定图像文件的大小 java.io.File file = new java.io.File(\ java.io.FileInputStream fis = new

java.io.FileInputStream( \ // 创建保存要上传的图像文件内容的字节数组 byte[] buffer = new byte[(int) file.length()]; // 将图像文件的内容读取buffer数组中 int n =

fis.read(buffer); System.out.println(\文件长度:\file.length()); Object[] opAddEntryArgs = new Object[] { buffer, n }; Class[] classes = new Class[] { Boolean.class }; QName opAddEntry = new QName(\ \ fis.close(); // 开始上传图像文件,并输出uploadImageWithByte方法的返回传

System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]); // 下面的代码调用了getArray方法,并返回一维String数组 opAddEntry = new QName(\\ String[] strArray = (String[])

serviceClient.invokeBlocking(opAddEntry, new Object[] {}, new Class[] { String[].class })[0]; for (String s : strArray) System.out.print(s + \ \ System.out.println(); // 下面的代码调用了getMDArray方法,并返回一维String数组

opAddEntry = new QName(\\ strArray = (String[])

serviceClient.invokeBlocking(opAddEntry, new Object[] {}, new Class[] { String[].class })[0]; for (String s : strArray) { String[] array =

s.split(\ for (String ss : array) System.out.print(\ System.out.println(); }

System.out.println(); // 下面的代码调用了getDataForm方法,并返回DataForm对象实例 opAddEntry = new QName(\\ data.DataForm df = (data.DataForm)

serviceClient.invokeBlocking( opAddEntry, new Object[] {}, new Class[] { data.DataForm.class })[0];

System.out.println(df.getAge()); // 下面的代码调用了getDataFormBytes方法,并返回字节数组,最后将返回的字节数组反序列化后,转换成DataForm对象实例 opAddEntry = new QName(\\ buffer = (byte[])

serviceClient.invokeBlocking(opAddEntry,

new Object[] {}, new Class[] { byte[].class })[0]; java.io.ObjectInputStream ois = new

java.io.ObjectInputStream( new java.io.ByteArrayInputStream(buffer)); df = (data.DataForm) ois.readObject();

System.out.println(df.getName()); } } </span> 运行上面的程序,将输出如下的内容:

文件长度:3617true自行车 飞机 火箭 <自行车> <飞机> <火箭><中国> <美国> <德国><超人> <蜘蛛侠> <钢铁侠>20

如果读者要上传大文件,应尽量使用FTP的方式来传递,而只通过WebService方法来传递文件名等信息。这样有助于提高传输效率。

以上的就是教程上的,照猫画虎,没什么技术含量,几分钟搞定,唯一需要的就是对java的io包,及java的输入输出要熟悉,不然就比较麻烦了。虽说自己懂了,但是看着客户端代码,我不禁问自己,调用webservice难道就这么复杂吗,有着现成的wsdl2java.bat我们为什么不用呢,难道教程上没有的我们就不学了吗?教程上的就一定是最好的吗?带着这些问题我开始了探索之旅,废话少说,看招!

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

共分享92篇相关文档

文档简介:

25.PNG\ 四、使用Java编写调用WebService的客户端代码 在客户端仍然使用了RPC的调用方式,代码如下: [java] view plaincopy<span style=\ import javax.xml.namespace.QName; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; public class ComplexTypeRPCClient { public static void main(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