Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 已为此响应调用了在jsp:Illegalstateexception:getwriter()中下载图像_Java_Jsp_Servlets_Struts_Illegalstateexception - Fatal编程技术网

Java 已为此响应调用了在jsp:Illegalstateexception:getwriter()中下载图像

Java 已为此响应调用了在jsp:Illegalstateexception:getwriter()中下载图像,java,jsp,servlets,struts,illegalstateexception,Java,Jsp,Servlets,Struts,Illegalstateexception,首先,如果已经有人问过这个问题,我很抱歉,我看到了很多类似的问题,但没有一个能给我提供有用的答案 我正在使用Struts,我想将一个图像下载到img标签中。我在我的应用程序的其他地方使用它,效果很好,但在其中一个地方,该操作抛出了IllegalStateException。这是一个登录页面,没有什么特别的。这是引发异常的操作中的代码: public String mappingExecute(ActionForm form, HttpServletRequest request,

首先,如果已经有人问过这个问题,我很抱歉,我看到了很多类似的问题,但没有一个能给我提供有用的答案

我正在使用Struts,我想将一个图像下载到img标签中。我在我的应用程序的其他地方使用它,效果很好,但在其中一个地方,该操作抛出了IllegalStateException。这是一个登录页面,没有什么特别的。这是引发异常的操作中的代码:

public String mappingExecute(ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {

    OutputStream out = response.getOutputStream();
    String idDocumento = request.getParameter("idDocumento");
    FileResponse fResponse = WebConfig.getFileManager().downloadFile(idDocumento);

    byte[] buffer = fResponse.getFileByteArray();
    out.write(buffer);
    out.close();
    return null;

}
这是个例外:

java.lang.IllegalStateException: getWriter() has already been called for this response
at org.apache.catalina.connector.Response.getOutputStream(Response.java:580)
at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:183)
at net.bilbao.dxd.web.SrvDownloadFile.mappingExecute(SrvDownloadFile.java:22)
at net.bilbao.dxd.web.SrvAction.execute(SrvAction.java:56)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
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 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:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
(SrvDownloadFile是我的操作类的名称,异常在
response.getOutputStream()
处引发)

这里是奇怪的部分:当我登录时,下一个jsp调用相同的操作,图像显示良好。当我返回到登录页面时,图像也显示得很好!此异常仅在您第一次转到登录页面时引发。在我的操作调用它之前,我可以做些什么来检查在哪里调用了
getWriter()


对不起,我的英语不好,请提前感谢。

可能在登录操作中,您正在转发响应,当控件到达该行时,响应已经发送,这就是异常情况告诉您的。 在其他情况下,可能无法调用此登录操作,因此它可以按预期工作