问题描述:
公司平台中的附件组件,部署在Tomcat下上传、下载均没有问题,等到将代码部署到weblogic中时,下载附件时有时候会出现java.net.ProtocolException,有时候附件可正常下载。
问题分析:
在异常信息中提示响应头中的Content-Length 与实际传输的字节长度不一致。但有的附件却可以正常下载,因此,问题应该出在响应输出流的字节数与Content-Length中设置的大小不一致。但有的附件却可以正常下载,也就是说有一些附件的实际输出字节数与Content-Length中的一致。
相同的问题曾经出现在我编写的MD5工具中,即我自己编写的工具根据文件生成的MD5值与其他工具生成的不一致,造成原因是我更新MD5时没有根据实际读入的字节数组长度,而是以缓存的字节数组固定长度进行更新的,因此问题就出现在了缓存数组的大小与实际读入(写出)的字节长度不一致,下面用代码进行说明:
错误代码:
byte bufferArray[]=new byte[10240];
if(fis!=null)
{
while(fis.read(bufferArray)!=-1)
{
fos.write(bufferArray);
}
}
上面的代码没有根据实际读入的大小进行输出,因此在输出时,由于读入的文件大小不是缓存数据大小的整数倍,就会造成实际输出的字节长度大于文件的实际长度,与相应头中设置的Content-Length不一致,下载报错。
但如果附件的长度恰恰是缓存数组长度的整数倍,则实际输出长度与Content-Length一致,下载不会报错。
至于Tomcat下没有问题而Weblogic下有问题,应该是weblogic对相应的校验比Tomcat严格所致。
问题解决:
在输出时按照实际读入的字节数组长度进行输出,问题解决。
具体代码:
byte bufferArray[]=new byte[10240];
if(fis!=null)
{
int byteLength=fis.read(bufferArray);
while(byteLength!=-1)
{
fos.write(bufferArray,0,byteLength);
byteLength=fis.read(bufferArray);
}
}
分享到:
相关推荐
自用CVE-2018-3191 weblogic反序列化exp。
weblogic-CVE-2023-21839-JNDIExploit-1.4-SNAPSHOT.jar
《Weblogic-CVE-2019-2725补丁升级方法详解》 WebLogic Server是一款由甲骨文公司开发的企业级应用服务器,它为构建、部署和管理企业级Java应用程序提供了全面的平台。然而,随着技术的发展,安全漏洞的出现是不可...
NULL 博文链接:https://yubolg.iteye.com/blog/1608096
WebLogic作为一款强大的Java EE应用服务器,支持JAX-WS标准,但正确配置和部署这些服务需要一些额外的步骤。本指南将详细介绍如何解决这些问题,并提供必要的配置文件和操作步骤。 首先,我们需要了解JAX-WS的工作...
weblogic-server-ee-datasheet.pdf
MySQL Connector/J 8.0.29 是MySQL数据库与Java应用程序之间通信的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在Java应用中连接并操作MySQL数据库。...
atmosphere-compat-weblogic-0.8.0-rc1.jar
atmosphere-compat-weblogic-0.8.0-rc3.jar
使用weblogic12c发布jax-ws的webservice服务端,启动时报错“metro-default.xml not fund ”百度了很长时间,方案都不能解决问题,后来goole了一下,参考了一个网页,非常管用,考虑到google有些同学没法访问,特地...
atmosphere-compat-weblogic-0.8.0-rc3-sources.jar
atmosphere-compat-weblogic-0.8.0-rc1-sources.jar
【K8 weblogic-CVE-2018-2628-getshell】是一个针对Oracle WebLogic Server的渗透测试工具,主要用于检验系统是否存在CVE-2018-2628漏洞并利用该漏洞获取shell权限。这个工具的使用应该严格限制在合法的安全测试环境...
标签:atmosphere-compat-weblogic-0.6.3-sources.jar.zip,atmosphere,compat,weblogic,0.6.3,sources,jar.zip包下载,依赖包
maven-weblogic-plugin-1.0.0.jar
Weblogic任意命令执行的检测工具。 WebLogic_CVE-2017-3248文件夹的执行命令: java -jar weblogic_cmd.jar -C whoami -H 10.1.1.104 -P...java -jar Weblogic-Unserialization-GetShll-CMD.jar 或者双击starter.bat.
标签:atmosphere-compat-weblogic-0.8-20110703.140458-41.jar.zip,atmosphere,compat,weblogic,0.8,20110703.140458,41,jar.zip包下载,依赖包
WebLogic-Server-配置步骤全攻略.doc
在"Weblogic-OPatch-13.9.4.2.5"这个场景下,用户需要仔细阅读补丁的说明文档,了解其具体变更内容,遵循最佳实践来应用更新,以确保WebLogic Server的持续稳定运行。同时,定期检查并应用新的OPatch更新,是保持...