Axis2中的webservice服务器端与客户端之间的大数据量的对象传递方法


public Raster2D dataView(String path) throws Exception{

Raster2D raster2D=RasterReadWrite.read(path);
System.out.println(path);
// Raster2D raster2D=new Raster2D(0, 0, 30, 10, 23, 9999, "hy");
//
return raster2D;
}


首先,看dataView是个wsdl描述服务的接口的一个具体:这里需要传递一个Raster2D这个实例,raster2D是个栅格数据,数据量比较大,在从服务端传递到客户端时,会出现,OutOfMeimery或Java heap 。。错误。

如何解决这一问题呢?
1.Axis2中是否有这个大数据量对象传递的方法,找了半天,自身查资料的能力有限,还是放弃了。
2.这跟我的在用SuperMap iClient开发时,发现查询的时候,数据量也很大,它是怎么实现的呢,于是查查资料,做了点功课。


public String dataView(String path) throws Exception{

Raster2D raster2D=RasterReadWrite.read(path);
System.out.println(path);
// Raster2D raster2D=new Raster2D(0, 0, 30, 10, 23, 9999, "hy");
[color=red] // 将Raster2D转化为 json对象
JSONObject jsonObject = JSONObject.fromObject(raster2D);
String rasterString=jsonObject .toString();[/color]

return rasterString;
}


就这样做了个转换将对象转换为JSON对象,然后toString变成字符串,对于基本对象字符串的传递那自然木有什么大的问题咯。

[img]http://dl.iteye.com/upload/attachment/0073/1699/dcb8c1b1-21cf-35be-8c10-dfd65a0fd582.png[/img]
接下来需要对在客户端解析Json对象,将数据利用起来。
---(daixu)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值