`
a.mu
  • 浏览: 4853 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

struts2下载DOC时出错提示:java.lang.ClassCastException: java.io.ByteArrayInputStream

阅读更多
如题:项目用S2SH框时,在ACTION里读取DOC文件,struts.xml配置文件代码如下:
 <package name="test" extends="struts-default" namespace="/test">
	    <default-action-ref name="download"/>
	  	<action name="getDocFile" class="downloadAction" method="getDownLoadFile">
	  	<param name="filePath">/res/test.doc</param>
	  	<result name="success" type="stream">
	  	<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
	  	<param name="ipnutName">downLoadFile</param>
	  	<param name="contentDisposition">attachment;filename="test.doc"</param>
	  	<param name="bufferSize">4096</param>
	  	</result>
	  	</action>
	 
	 </package>

ACTION的代码如下:

@Controller("downloadAction")
@Scope("prototype")
public class DownLoadAction implements Action {
	
	private InputStream inputStream;
	private String filePath;
	
	public InputStream getDownLoadFile(){
		System.out.println(filePath);

		return ServletActionContext.getServletContext().getResourceAsStream(filePath);
	}

	public InputStream getInputStream() {
		return inputStream;
	}

	public void setInputStream(InputStream inputStream) {
		this.inputStream = inputStream;
	}

	public String getFilePath() {
		return filePath;
	}

	public void setFilePath(String filePath) {
		this.filePath = filePath;
	}



当在页面点击下载时会出现如下提示:
description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

java.lang.ClassCastException: java.io.ByteArrayInputStream
	com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:451)
	com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
	com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
	com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
	org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor
…………………………


我自己也郁闷一天了,这个功能就是做不出来,而下载为txt文件时就没有问题,请帮忙解决一下,急啊!!!!!


=================================================================================

谢谢各位,问题已经解决了,换了其他的方法来解决项目需要了:)



分享到:
评论
2 楼 ___loveOfForever 2013-04-24  
我想问你个问题:如果action返回的inputStream流,那么在spring.xml和struts.xml需要配置啥呢?
1 楼 a.mu 2010-09-25  
谢谢各位,问题已经解决了,换了其他的方法来解决项目需要了:)

相关推荐

    java.lang.ClassCastException

    在Java编程中,`java.lang.ClassCastException`是一个运行时异常,通常发生在强制类型转换时,如果尝试将一个对象转换为其非兼容类型时就会抛出。这个异常表明在编译时可能成功的类型转换,在运行时被证明是错误的。...

    java.lang.NoClassDefFoundError错误解决办法

    java.lang.NoClassDefFoundError错误是一种常见的Java错误,它发生在Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。下面是该错误的解决办法: 错误原因 NoClassDefFoundError错误的...

    client-adapter.es7x-1.1.5-SNAPSHOT-jar-with-dependencies.jar

    Load canal adapter: es7 failed java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassCastException: ...canal-adapter1.1.5报错, 将client-adapter.es7x-1.1.5-SNAPSHOT-jar-with-dependencies....

    Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法

    在使用Mybatis框架时,你可能会遇到`org.apache.ibatis.exceptions.PersistenceException`这样的异常。这个异常通常表示在执行数据库查询操作时遇到了问题。本篇将详细分析这个问题并提供解决方法。 ### 问题概述 ...

    java操作xml dom dom4j sax jdom

    在Java编程中,XML(可扩展标记语言)是一种被广泛用于数据存储和交换的格式。为了处理XML文档,Java提供了多种API,其中最常用的包括DOM、SAX、DOM4J和JDOM。以下是对这些方法的详细介绍: 1. DOM(Document ...

    json-lib net.sf.ezmorph.bean.MorphDynaBean cannot be cast to xxx

    **类型转换**是Java编程中的常见操作,但是不安全的类型转换会导致`ClassCastException`。当试图将一个对象强制转换为它实际上不是的类型时,就会抛出这个异常。在你的例子中,`MorphDynaBean`不能被转换为`xxx`,...

    android gson 混淆代码 问题

    在Android开发中,Gson库是一个非常常用的工具,它由Google提供,用于将Java对象转换为JSON字符串,反之亦然。然而,在混淆代码时,可能会遇到一些问题,导致Gson无法正常工作。本文将深入探讨这些问题及其解决方案...

    canal adapter 1.1.5 DruidDataSource 连接池异常

    java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassCastException: com.alibaba.druid.pool.DruidDataSource cannot be cast to com.alibaba.druid.pool.DruidDataSource 可用这个jar替换...

    java异常类型.txt

    5. **`java.lang.ClassCastException`** - 在强制类型转换失败时抛出此异常,即尝试将一个对象强制转换为其实际类型以外的类型时。 6. **`java.lang.ArithmeticException`** - 发生算术运算错误时抛出此异常,例如...

    WanAndroid-Java:一种采用Java语言,MVVM + Retrofit + RxJava架构开发的玩Android客户端(https:www.wanandroid.com)。PS:Kotlin版(https:github.comchongyucaiyanWanAndroid-Kotlin)

    安卓系统 玩Android客户端 项目简介 整个项目采用MVVM + Retrofit + RxJava架构进行开发。 项目截图 项目版本 v1.0.0 基本功能 技术要点 采用MVVM模式开发,查看操作和业务逻辑解耦 采用DataBinding框架实现View与...

    Android 简单封装一个精美、好用的菜单型PopupWindow

    2. **初始化PopupWindow**:在Java代码中,我们首先需要实例化PopupWindow对象,传入之前创建的布局文件。例如: ```java View popupView = LayoutInflater.from(context).inflate(R.layout.popup_menu, null); ...

    JAVA常见异常解析,面试用

    - **java.lang.ClassCastException**:当尝试将对象强制转换为不兼容的类型时抛出。 - **java.lang.NegativeArraySizeException**:创建具有负长度的数组时抛出。 - **java.lang.SecurityException**:在安全管理器...

    java常见异常.pdf

    2. **java.lang.ClassNotFoundException**: 当尝试加载一个类,但JVM无法找到指定的类定义时,会抛出此异常。这可能是因为类路径设置不正确或者类的名称有误。确保类名与源代码和编译后的文件名匹配,并且类路径包含...

    JAVA常见的错误

    2. java.lang.ClassNotFoundException java.lang.ClassNotFoundException 是一种常见的错误,发生在指定的类不存在时。例如,在将 JB 下的程序包放在 WTK 下编译时,如果类的名称和路径不正确,就会出现该错误。...

    java.util.ConcurrentModificationException 解决方法

    `java.util.ConcurrentModificationException` 是一个在 Java 中常见的运行时异常,它通常发生在多线程环境中,当一个线程正在遍历一个集合(如 `ArrayList`, `HashMap` 等),而另一个线程同时尝试修改这个集合时。...

    java 异常种类总结【转】.docx

    java.lang.UnsatisfiedLinkError 是一种未满足的链接错误,指的是在程序中 Java 虚拟机未找到某个类的声明为 native 方法的本机语言定义时抛出的异常。 32. java.lang.UnsupportedClassVersionError 不支持的类版本...

    JAVA常见异常解析

    2. **java.lang.ClassNotFoundException**: 这个异常通常发生在尝试加载一个不存在的类时。可能是由于类路径设置错误,或者类名拼写不正确。确保类的完整限定名(包括包名)正确,并且类的`.class`文件位于正确的...

    jdk 1.5:1.6:1.7.zip

    1. **NIO.2(非阻塞I/O)**:提供了一种更高效、非阻塞的I/O模型,提高了服务器端应用的性能。 2. **动态代理**:允许在运行时创建实现了指定接口的代理类,增强了面向切面编程(AOP)的能力。 3. **改进的Swing和...

    解决cannot be cast to javax.servlet.Filter 报错的问题

    cannot be cast to javax.servlet.Filter 报错, 原因servlet-api.jar冲突 使用maven开发web应用程序, 启动的时候报错: jar not loaded....java.lang.ClassCastException: org.springframework.web.f

Global site tag (gtag.js) - Google Analytics