WebService 服务端接收客户端传输的附件不完整,急!!!!!!!!在线等......................
环境:WebLogic1001,AIX 6.1问题描述:服务器短获得客户端通过soapMessage传送过来的附件文件不完整
客户端通过SOAPMessage的addAttachmentPart方式上传附件,主要代码如下
AttachmentPart part=soapMessage.createAttachmentPart();
part.setContentType("application/octet-stream");
FileDataSource fds=new FileDataSource(fullPathNm);
part.setDataHandler(new DataHandler(fds));
soapMessage.addAttachmentPart(part);
服务器段主要是对这个soapMessage进行处理 主要代码如下
it=soapMessage.getAttachments();
File outFile=null;
try{
while(it.hasNext()){
AttachmentPart part=(AttachementPart) it.next();
outFile=new FileOutputStream(outFile);
os = new FileOutputStream(new File(dir,fileName));
is = part.getDataHandler().getInputStream();
byte [] b=new byte[8192];
int nr;
while((nr = is.read(b)) != -1){
//服务器段写入文件大小不争取,内容不完整
os.write(b,0,nr);
}
}
}finally{
os.close();
is.close();
}
以上代码运行后,服务器端文件大小不完整。
以上问题已经分析一天了,没有找到原因
目前发现客户端确实上传了完整的文件
但是服务端获取的文件也确实不完整
难道传输有问题,会有什么问题?
有谁可以帮忙分析下,急,在线等 SOAPMessage DataHandler AttachementPart InputStream --------------------编程问答-------------------- 服务器短有大小限制? --------------------编程问答-------------------- 单独要上传附件的话,可以用这个:
http://blog.csdn.net/jdgdf566/article/details/16357677 --------------------编程问答-------------------- 补充一下,该问题是系统升级引起的
原:weblogic814+jdk1.4
现: weblogic1001+jdk1.5
考虑到影响,最好不要改变文件上传方式。 --------------------编程问答-------------------- 目前不知道如何查看服务器端是否有大小限制,貌似没有。限制的情况是,上传同一个附件,50%上传完整,50%上传不完整 --------------------编程问答-------------------- byte [] b=new byte[8192];
你限制了写入文件的大小,应该获取inputstream的有效字节:
int size=is.available();
byte[] b=new byte[size]; --------------------编程问答-------------------- byte [] b=new byte[8192]; 这个应该是缓冲存储区吧,和文件大小应该没有关系 --------------------编程问答-------------------- 感觉是传输限制
补充:Java , Java EE