问题表现:
在Jetty服务器上部署开发的项目运行后,能正常打开文档,但在同一台计算机上将项目部署在Weblogic服务器上后,打开同一文档报文件存取错误。
可能原因:
1. WebLogic服务器的编码有问题。
2. 后台读取文件流的方法有问题。
解决方案:
1. 修改WebLogic服务器的编码方式。
2. 请参考以下读取文件流的方法:
public void downLoadFromDb(HttpServletRequest request, HttpServletResponse response) throws IOException{
JdbcDao jd= new JdbcDao();
ResultSet rs = null;
InputStream ins = null;
ServletOutputStream os = response.getOutputStream();
int id = Integer.parseInt(request.getParameter("id"));
int len = 0 ;
//从数据库读取文件信息
String sql = "select * from fileInfo where id='"+id+"'";
rs = jd.query(sql);
try {
if(rs.next())
{
response.reset();
response.setContentType("applcation/o ctet-stream");
try {
ins = rs.getBinaryStream("fileContent");
byte[] buffer = new byte [1024];
while((len=ins.read(buffer,0,1024))! =-1)
{
System.out.println("开始加载....");
os.write(buffer,0, len);
}
} catch (Exception e) {
e.printStackTrace();
}
ins.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
|