首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

SmartUpload下载成功但tomcat报错解决方法

2012-02-21 
SmartUpload下载成功但tomcat报错Java code%@ page languagejava pageEncodingUTF-8contentTypet

SmartUpload下载成功但tomcat报错

Java code
<%@ page language="java" pageEncoding="UTF-8"    contentType="text/html;charset=UTF-8" import="com.jspsmart.upload.*"%><% // 新建一个SmartUpload对象 SmartUpload su = new SmartUpload(); // 初始化 su.initialize(pageContext); // 设定contentDisposition为null以禁止浏览器自动打开文件, //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为 //doc时,浏览器将自动用word打开它。扩展名为pdf时, //浏览器将用acrobat打开。 su.setContentDisposition(null); // 下载文件 su.downloadFile("/document/"+(String)request.getAttribute("fileName")); out.clear();out=pageContext.pushBody();%>这是我用的下载jsp,用的是SmartUpload这个包做下载,有一个情况会出现这个问题就是在点击下载时(如果装有迅雷或其它下载工具会自动启用)如果关闭下载工具想用浏览器下载就会报如下的错误,现在求一个解决方案,有什么好的下载方式可以避免这个问题的发生。[ERROR]http-8081-10-org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/].[action]-Servlet.service() for servlet action threw exceptionjava.io.IOException    at org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:696)    at org.apache.coyote.http11.InternalAprOutputBuffer$SocketOutputBuffer.doWrite(InternalAprOutputBuffer.java:726)    at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:118)    at org.apache.coyote.http11.InternalAprOutputBuffer.doWrite(InternalAprOutputBuffer.java:532)    at org.apache.coyote.Response.doWrite(Response.java:560)    at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353)    at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:352)    at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:381)    at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:370)    at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)    [color=#FF6600]at com.jspsmart.upload.SmartUpload.downloadFile(SmartUpload.java:579)    at com.jspsmart.upload.SmartUpload.downloadFile(SmartUpload.java:508)    at com.jspsmart.upload.SmartUpload.downloadFile(SmartUpload.java:476)[/color]    at org.apache.jsp.webs.report.load_jsp._jspService(load_jsp.java:67)    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)    at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)    at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)    at com.jccw.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:25)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)    at org.apache.catalina.valves.CometConnectionManagerValve.invoke(CometConnectionManagerValve.java:248)    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)    at java.lang.Thread.run(Thread.java:595) 



[解决办法]
这个。。。
直接用文件名下载不行么?
非得用这个组件
[解决办法]
也遇到同样问题~~求高人指点
[解决办法]
下载你可以自己写一段代码呀,弹出IE的下载对话框。
把迅雷的监控浏览器去掉,否则是不会弹出来的!
[解决办法]
建议用流来做。你就是下载电影都行。我这里有个以前用Swing加流写的一个类似迅雷的源代码,需要的话加我QQ传给你136893103
[解决办法]
我当时做的也是这样,之后将迅雷浏览器设置为不是默认下载工具,然后再下载就是浏览器下载了,不过在浏览器下载时点击取消,tomcat也会报上面错误,原因是在浏览器下载界面弹出时,文件流已经打开,当单击取消时,没有相应的措施关闭文件流,所以回报IOException
[解决办法]
smartUpload? N年前的组件了吧,记得当时用的时候还改过它的bug,现在应该早就没有更新了。

要上传用apache的common.io和common.net包,很稳定,足够用了
[解决办法]
你用我贴出的代码试下,看可不可以,不要用SmartUpload组件了!
[解决办法]
楼主,问题解决后公布一下解决方法,学习学习!

热点排行