- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用以下代码片段在浏览器中打开 pdf 文件:
public ActionResult action(Request request, AspectModel arg1)
throws ServletException {
if ("PDF".equals(request.event())) {
try{
HttpServletResponse resp=(HttpServletResponse) request.getResponse();
resp.setContentType("application/pdf");
resp.setHeader("Content-Disposition","inline;filename=AccountOpeningSummary.pdf");
resp.setHeader("Cache-Control", "cache, must-revalidate");
resp.setHeader("Cache-Control", "no-store,public");
resp.setDateHeader("Expires", 0);
resp.setHeader("Pragma", "public");
OutputStream OutStream = resp.getOutputStream();
OutStream.write(infos,0,infos.length);
OutStream.flush();
OutStream.close();
}catch (Exception e) {
System.out.println("PDF Write Exception...........................####"+e);
}
}
return null;
}
我收到以下错误:
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:626)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:215)
at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:105)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:177)
at abaxx.web.taglib.IncludeTag.doEndTag(IncludeTag.java:69)
at org.apache.jsp.parts.index_jsp._jspx_meth_xx_005finclude_005f0(index_jsp.java:237)
at org.apache.jsp.parts.index_jsp._jspService(index_jsp.java:93)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530)
at abaxx.core.foundation.internal.SelfDestroyingHttpServletRequestWrapper$1.include(SelfDestroyingHttpServletRequestWrapper.java:36)
at abaxx.core.foundation.internal.SelfDestroyingHttpServletRequestWrapper$1.include(SelfDestroyingHttpServletRequestWrapper.java:36)
at abaxx.web.parts.internal.ServletRequestContext.doInclude(ServletRequestContext.java:85)
at abaxx.web.parts.RequestContext.include(RequestContext.java:429)
at abaxx.web.parts.VisualPart.basicDisplay(VisualPart.java:740)
at abaxx.web.parts.CompositePart.basicDisplay(CompositePart.java:111)
at abaxx.web.parts.VisualPart.doDisplay(VisualPart.java:762)
at abaxx.web.control.DisplayLoopInterceptor.display(DisplayLoopInterceptor.java:233)
at abaxx.web.security.StandardSecurityPolicy$DisplayHook.display(StandardSecurityPolicy.java:321)
at abaxx.web.control.PerformanceMonitor$DisplayPerformanceInterceptor.display(PerformanceMonitor.java:187)
at abaxx.web.control.DisplayLoopInterceptor.doDisplay(DisplayLoopInterceptor.java:80)
at abaxx.web.parts.VisualPart.display(VisualPart.java:104)
at abaxx.web.control.DisplayLoopInterceptor.process(DisplayLoopInterceptor.java:128)
at vanilla.portal.builder.PBDisplayLoopInterceptor.process(PBDisplayLoopInterceptor.java:60)
at vanilla.common.EncodingExtension$ResponseEncodingInterceptor.process(EncodingExtension.java:107)
at abaxx.web.preferences.PreferencesHookup$2.process(PreferencesHookup.java:126)
at vanilla.common.HttpHeaderInterceptor.process(HttpHeaderInterceptor.java:36)
at abaxx.web.control.PageflowInterceptor.process(PageflowInterceptor.java:62)
at abaxx.workflow.pageflow.PageflowInterceptor.process(PageflowInterceptor.java:93)
at abaxx.web.control.ActionInterceptor.process(ActionInterceptor.java:49)
at abaxx.web.security.StandardSecurityPolicy$ActionHook.process(StandardSecurityPolicy.java:211)
at abaxx.web.control.SessionTimeoutInterceptor.process(SessionTimeoutInterceptor.java:59)
at abaxx.track.TrackingInterceptor.finishTracking(TrackingInterceptor.java:151)
at abaxx.track.TrackingInterceptor.process(TrackingInterceptor.java:100)
at abaxx.web.control.AccessViolationInterceptor.process(AccessViolationInterceptor.java:110)
at abaxx.web.control.RequestProcessor$P9.process(RequestProcessor.java:72)
at abaxx.web.control.PerformanceMonitor$RequestPerformanceInterceptor.process(PerformanceMonitor.java:153)
at vanilla.common.EncodingExtension$RequestEncodingInterceptor.process(EncodingExtension.java:61)
at abaxx.web.control.MaintenanceInterceptor.process(MaintenanceInterceptor.java:44)
at abaxx.web.control.AbaXXComponentsHookup$ClientSessionHookupInterceptor.process(AbaXXComponentsHookup.java:42)
at abaxx.web.security.SecurityPolicy$FakeContainerLoginInterceptor.process(SecurityPolicy.java:136)
at abaxx.web.control.RequestProcessor.process(RequestProcessor.java:187)
at abaxx.web.control.ApplicationServlet.doGet(ApplicationServlet.java:144)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at abaxx.web.control.url.RequestFilter.doFilter(RequestFilter.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at abaxx.web.control.CachingHeaderFilter.doFilter(CachingHeaderFilter.java:29)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at vanilla.common.EncodingExtension.doFilter(EncodingExtension.java:121)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
我也尝试过关闭 getWriter()
使用:
HttpServletResponse resp=(HttpServletResponse) request.getResponse();
Writer rt=resp.getWriter();
resp.getWriter().close();
谁能帮帮我?
最佳答案
编辑:现在问题已经发生了重大变化......
听起来 JSP 仍在尝试将自身呈现为响应。您需要告诉容器您正在处理该请求 - 理想情况下您不应该靠近 JSP,因为这可能是对 PDF 的请求只是。您应该将容器配置为调用单独的 servlet 来下载 PDF;这样你就根本不会涉及到 JSP 部分。
(是的,这将意味着移动您在问题中显示的代码。这大概是当前 JSP 的一部分;它不应该是。)
关于java - 非法状态异常 : getwriter() has already been called for this response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11721330/
我正在通读 Windows Phone 7.5 Unleashed,有很多代码看起来像这样(在页面的代码隐藏中): bool loaded; protected override void OnNav
在cgi服务器中,我这样返回 print ('Status: 201 Created') print ('Content-Type: text/html') print ('Location: htt
我正在查看 esh(easy shell)的实现,无法理解在这种情况下什么是 22 和 9 信号。理想情况下,有一个更具描述性的常量,但我找不到列表。 最佳答案 信号列表及其编号(包括您看到的这两个)
我的Oozie Hive Action 永远处于运行模式。 oozie.log文件中没有显示错误。
我正在编写一个使用 RFCOMM 通过蓝牙连接到设备的 Android 应用程序。我使用 BluetoothChat 示例作为建立连接的基础,大部分时间一切正常。 但是,有时由于出现套接字已打开的消息
我有一个云调度程序作业,它应该每小时访问我的 API 以更新一些价格。这些作业大约需要 80 秒才能运行。 这是它的作用: POST https://www.example.com/api/jobs/
我正在 Tomcat 上访问一个简单的 JSP 页面: 但是当我使用 curl 测试此页面时,我得到了 200 响应代码而不是预期的 202: $ curl -i "http://localhos
有时 JAR-RS 客户端会发送错误的语法请求正文。服务器应响应 HTTP status 400 (Bad Request) , 但它以 HTTP status 500 (Internal Serve
我正在尝试通过 response.send() 发送一个整数,但我不断收到此错误 express deprecated res.send(status): Use res.sendStatus(sta
我已经用 Excel 和 Java 做过很多次了……这次我需要用 Stata 来做,因为保存变量更方便'labels .如何将 dataset_1 重组为下面的 dataset_2? 我需要转换以下
我正在创建一个应用程序,其中的对象具有状态查找功能。为了提供一些上下文,让我们使用以下示例。 帮助台应用程序,其中创建作业并通过以下工作流程移动: 新 - 工作已创建但未分配 进行中 - 分配给工作人
我想在 Keras 中运行 LSTM 并获得输出和状态。在 TF 中有这样的事情 with tf.variable_scope("RNN"): for time_step in range
有谁知道 Scala-GWT 的当前状态 项目? 那里的主要作者 Grzegorz Kossakowski 似乎退出了这个项目,在 Spring 中从事 scalac 的工作。 但是,在 interv
我正在尝试编写一个 super 简单的 applescript 来启动 OneDrive App , 或确保打开,当机器的电源设置为插入时,将退出,或确保关闭,当电源设置为电池时。 我无法找到如何访问
目前我正在做这样的事情 link.on('click', function () { if (link.attr('href') !== $route.current.originalPath
是否可以仅通过查看用户代理来检测浏览器上是否启用/禁用 Javascript。 如果是,我应该寻找什么。如果否,检测用户浏览器是否启用/禁用 JavaScript 的最佳方法是什么 最佳答案 不,没有
Spring 和 OSGi 目前的开发状况如何? 最近好像有点安静了。 文档的最新版本 ( http://docs.spring.io/osgi/ ) 来自 2009 年。 我看到一些声明 Sprin
我正在从主函数为此类创建一个线程,但即使使用 Thread.currentThread().interrupt() 中断它,输出仍然包含“Still Here”行。 public class Writ
为了满足并发要求,我想知道如何在 Godog 中的多个步骤之间传递参数或状态。 func FeatureContext(s *godog.Suite) { // This step is ca
我有一个UIButton子类,它不使用UIImage背景,仅使用背景色。我注意到的一件事是,当您设置按钮的背景图像时,有一个默认的突出显示状态,当按下按钮时,该按钮会稍微变暗。 这是我当前的代码。
我是一名优秀的程序员,十分优秀!