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!

Reply via email to