I use struts2.0.11,I want to show a picture by struts action,like follows: public String showphoto() throws Exception{ response=ServletActionContext.getResponse(); response.setContentType("image/png"); ... InputStream in = picture.getBinaryStream(); OutputStream out = response.getOutputStream(); byte[] buf = new byte[1024]; int len; while ((len = in.read(buf)) != -1){ out.write(buf, 0, len); } in.close(); out.close(); response.flushBuffer(); return SUCCESS; }
When I run above code,it can run well,and it can show picture in jsp,but I find it write error information in tomcat6,like follows: fatal: Servlet.service() for servlet jsp threw exception java.lang.IllegalStateException: getOutputStream() has already been called for this response at org.apache.catalina.connector.Response.getWriter(Response.java:610) at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198) at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:112) at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125) Why raise above error in tomcat6? How to correct my code to correct above error? Thanks in advance!