0 0

下载功能中,struts两次调用acton里的execute()方法,第二次调用就会报异常,但不影响功能的实现。求不报异常的解决办法5

异常如下-----
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:770)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:505)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
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.core.StandardHostValve.invoke(StandardHostValve.java:128)
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:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)


java 代码如下----
package com.longtop.sysnet.controler.struts2;



import java.io.InputStream;

import java.io.UnsupportedEncodingException;

import java.net.URLDecoder;
import org.apache.struts2.ServletActionContext;

public class DownloadAction3 extends BaseAction {

private String fileName;// 初始的通过param指定的文件名属性

private String inputPath;// 指定要被下载的文件路径

public InputStream getInputStream() throws Exception {

// System.out.println(getRequest().getParameter("fileName"));
// 通过 ServletContext,也就是application 来读取数据
System.out.println();
System.out.println();
System.out.println(fileName);
System.out.println(URLDecoder.decode(fileName));
return ServletActionContext.getServletContext().getResourceAsStream(
inputPath + "\\" + fileName);

}

public String execute() throws Exception {

return SUCCESS;

}

public void setInputPath(String value) {

inputPath = value;

}

public void setFileName(String fileName) {

this.fileName = fileName;

}

/** 提供转换编码后的供下载用的文件名 */

public String getDownloadFileName() {

String downFileName = fileName;

try {

downFileName = new String(downFileName.getBytes(), "ISO8859-1");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return downFileName;

}

}


struts.xml配置如下--

<action name="download3" class="com.longtop.sysnet.controler.struts2.DownloadAction3">
<!-- 初始文件存放路径 -->
<param name="fileName">财务导入指标模板.xls</param>
      <param name="inputPath">/WEB-INF/download/</param>
      <result name="success" type="stream">
      <param name="contentType">
      application/octet-stream;charset=ISO8859-1
      </param>
      <param name="inputName">inputStream</param>
      <!-- 使用经过转码的文件名作为下载文件名,downloadFileName属性
      对应action类中的方法 getDownloadFileName() -->
      <param name="contentDisposition">
      attachment;filename="${downloadFileName}"
      </param>
      <param name="bufferSize">4096</param>
      </result>
</action>
2012年8月17日 09:28
目前还没有答案

相关推荐

    struts1.x 异常处理机制

    然而,在实际开发过程中,难免会遇到各种异常情况,这时候就需要一套有效的异常处理机制来捕获和处理这些异常,确保应用的稳定性和用户体验。以下是对Struts1.x自定义异常处理的详细讲解。 首先,Struts1.x框架默认...

    struts2 in acton 示例源代码(2)

    struts2 in acton 示例源代码,文件超过15M,只能分开了。

    acton之间传值

    ### Struts2框架中Action间传值方法详解 在Struts2框架中,Action类是处理用户请求的核心组件,它们负责执行具体的业务逻辑,并决定视图的转向。在某些情况下,我们可能需要在一个Action处理完成后将某些数据传递给...

    Acton Spectrapro 光谱仪控制器:通过 RS-232 通信控制 Acton 光谱仪的功能-matlab开发

    唯一需要的更改是更改终止符,并且可能更改代码中的一些字符串值。 请注意,您应该首先通过阿克顿单色仪软件让您的光谱仪与您的 PC 通信,您可以从中设置零点、光栅闪耀等。该库不是该软件的替代品,而是用于自动...

    qt学习之路

    在这一节中,我们将实现一个简易的音乐播放器,其核心功能采用Qt支持的Phonon框架。Phonon框架不仅用于播放背景音乐和消行声音,在本章节中也被用于播放、暂停等多媒体控制功能。Phonon框架还能够自动获取音频文件的...

    C++ CLI In Acton

    什么是 C++/CLI 个人感觉将其看作是位于静态程序设计和动态程序设计之间的一座桥梁。C++ 既C++ 编程语言编程语言; CLI 即通用语言基础构造( Common Language Infrastructure ),这是一个支持动态组件编程模型的...

    不到1000元也“路由”——小议宽带路由器的选择.pdf

    在稳定性方面,ACTON IG1004路由器尽管价格稍高,但它所提供的稳定性和打印服务器功能,对于小型商业用户来说是一个理想的选择。 对于学校寝室,宽带路由器同样发挥着不可或缺的作用。尤其在一些高校,网络管理中...

    巧用STAR方法做好ERP选型

    用一句话来概括,就是企业模拟出一个真实的管理环境,提出自己想实现的目标,然后让对方提出对应的解决方法,然后企业进行考核,看看这个方法能否达到预计的效果。 笔者用这个方法面试了几个ERP软件及合作伙伴,效果...

    WINVIEW 触摸屏编程软件v2.70

    虽然新版本可能拥有更多先进的特性,但v2.70依然在某些场景下具有不可替代的优势。对于那些需要维护旧设备或寻找稳定解决方案的用户来说,这是一个值得信赖的选择。通过深入理解和熟练掌握这款软件,可以极大地提高...

    SSH框架整合

    struts2springhibernate整合详细步骤

    flash 线性代数结算

    flash acton 实现线性计算 数组 求矩阵的值,求逆矩阵,解答线性方程

    abrhs-biobuilder:Acton-Boxborough的BioBuilder网站

    abrhs-biobuilder Acton-Boxborough的BioBuilder网站

    Speckle reducing anisotropic diffusion 论文和代码

    Acton在2002年发表的论文《Speckle Reducing Anisotropic Diffusion》提出了SRAD算法,它是一种基于扩散过程的非线性滤波技术,能够有效地平滑图像中的斑点噪声,同时尽可能保持图像边缘的清晰度。 **一、SRAD算法...

    阿克顿浏览器扩展「ActOn Browser Extension」-crx插件

    采取行动,对你所读的新闻产生影响! 不只是阅读新闻-采取行动!! 该Chrome插件可帮助您找到可能会对您所阅读的问题产生影响的操作和组织。 我们使用机器学习和自然语言处理来查找与您正在阅读的主题相关的动作和...

    北大青鸟租房网(增删改查,分页)

    【标题】"北大青鸟租房网(增删改查,分页)"涉及的是一个基于Web的租房信息发布和管理平台,主要功能包括房源信息的添加、删除、修改以及查询,并且具备分页显示的能力。这一系统可能采用了Acton框架进行开发,...

    计算物理讲义1

    例如,当遇到无法解析求解的方程或表达式时,就需要借助数值方法,如牛顿迭代法、龙格-库塔方法、辛方法等。这些方法能够帮助我们近似求解问题,尤其是在涉及大量数据和复杂模型的情况下。 **数值模拟** 数值模拟是...

    生物医学图像分析:跟踪

    书中首先介绍了使用主动轮廓(通常称为蛇算法)进行追踪的方法,并讨论了这些方法如何在生物医学成像中获得成功应用。接着,书中深入探讨了概率论框架下的各种追踪技术,包括基本的贝叶斯模型、卡尔曼滤波器以及传统...

    jquery实现简单每周轮换的日历

    在网页开发中,日历组件是一个常见的功能,尤其在处理日期相关的任务时。jQuery 是一个广泛使用的 JavaScript 库,它简化了DOM操作、事件处理和动画效果。本篇文章将详细介绍如何使用 jQuery 实现一个简单每周轮换的...

    oauth-in-action-code:行动中的OAuth 2的源代码-Source code

    行动中的OAuth 2 关于这本书 将OAuth 2看作是代客密钥的网络版本。 这种基于HTTP的安全协议允许服务的用户使应用程序能够代表他们使用该服务,而无需交出全部控制权。 Web和移动应用程序可以为这些用户安全地从...

Global site tag (gtag.js) - Google Analytics