action 中的写法
public InputStream getInputStream() throws Exception {
// File file = new File("d:/直接登录链接.txt");
// fileName = file.getName();
// InputStream in = new FileInputStream(file);
InputStream in = null;
log.info("entering action...");
if (contentId == null)
return null;
log.info(contentId);
content = contentMgr.getContent(Long.valueOf(contentId));
if (content == null)
return null;
fileName = content.getFilename();
Blob fileContent = content.getFileContent();
log.info(fileContent);
in = fileContent.getBinaryStream();
log.info(in);
return in;
}
struts.xml 的配置
<action name="downloadFile" class="contentAction" >
<result name="success" type="stream">
<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
<param name="bufferSize">4096</param>
</result>
</action>
页面超连接点击下载,遗憾的是报错
页面错误如下:
javax.servlet.ServletException: Can not find a java.io.InputStream with the name [inputStream] in the invocation stack. Check the tag specified for this action. at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:419) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:534)
比叫郁闷的是春节前这样写是没有问题的,回家过了个年回来居然出现问题,代码部分我看比较了CVS也没什么改动,只是框架的部分配置文件有所改变,也只是些数据源的改动,好像都无关紧要
真是郁闷啊,搞不懂了
我注释部分为从文件系统下载没问题,可是从 Oracle 中取 Blog 字段就出错
不知道什么问题,希望各位大虾帮忙看看