通过web service的方式上传附件和下载附件,以及内存溢出问题

            前一阵子给朋友做了一个小东东,因为全部采用的是web service方式,使用了apache的axis,其中一个功能是上传下载,就直接使用了web service 的方式来上传附件。

 

            原理很简单,就是把文件转换成字节byte[]传到服务端过去,下载也是正好是反过来的过程。

 

定义web service的接口类

 

  public interface UploadService extends java.rmi.Remote {
    public int uploadFile(org.cxp.info.entity.UploadFile[] file, java.lang.String fileName) throws java.rmi.RemoteException;
    public org.cxp.info.entity.UploadFile[] getUploadFile(org.cxp.info.entity.UploadFile condition) throws java.rmi.RemoteException;
}

 

定义UploadFile类,该类封装了文件byte,文件名

public class UploadFile  implements java.io.Serializable {
    private java.lang.String key;

    private java.lang.String fileName;

    private byte[] fileByte;

    public UploadFile() {
    }

    public UploadFile(
           java.lang.String key,
           java.lang.String fileName,
           byte[] fileByte) {
           this.key = key;
           this.fileName = fileName;
           this.fileByte = fileByte;
    }

...//以上变量的get和set方法,不再写出

 }

 

这样客服端就可以通过调用这样的接口上传附件和下载附件了。客服端和服务端都要有这个接口。

 

问题来了,通过这样的上传,有些客服端附件超过4M就会上传不成功,提示内存溢出。

 

我们知道在在终端启动一个java程序,如,我们运行YourClass.class,要这样写 java -classpath your.lib YourClass

 

如果YourClass.class要调用上述web service 的接口进行上传文件,我们需要这样增加参数 -mx80M ,

如:java -classpath your.lib -mx80 YourClass

经测试就可以传10M左右的附件。可以把80改大,就能上传更大的附件,当然,web service上传功能有限,

在使用中需要仔细斟酌

 

 

 

 

 

           

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值