LIPE.
Fiz um teste da seguinte maneira.
Criei um temp.jsp com o código:
<%@page session=“true” %>
<%@page import=“teste.PieChart” %>
<%@page import=“javax.imageio.ImageIO” %>
<%@page import=“java.awt.Color” %>
<%@page import=“java.io.OutputStream” %>
<%
int[] valores = { 20, 10, 60, 90, 90, 90 };
PieChart pie = new PieChart( valores, 200, 200, Color.WHITE );
response.setContentType(“image/png”);
OutputStream os = response.getOutputStream();
ImageIO.write(pie.getBufferedImage(), “png”, os);
os.close();
%>
:arrow: Dessa maneira acima funciona, aparece a imagem no browser.
:arrow: Porém se eu colocar meus includes:
<%@page session=“true” %>
<%@page import=“teste.PieChart” %>
<%@page import=“javax.imageio.ImageIO” %>
<%@page import=“java.awt.Color” %>
<%@page import=“java.io.OutputStream” %>
<jsp:include page=“cabecalho.jsp” flush=“true” />
<%
int[] valores = { 20, 10, 60, 90, 90, 90 };
PieChart pie = new PieChart( valores, 200, 200, Color.WHITE );
response.setContentType(“image/png”);
OutputStream os = response.getOutputStream();
ImageIO.write(pie.getBufferedImage(), “png”, os);
os.close();
%>
<jsp:include page=“rodape.jsp” flush=“true” />
:arrow: Gera a seguinte exeção.
2004-07-13 10:06:10 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getWriter() has already been called for this response
at org.apache.catalina.connector.ResponseBase.getOutputStream(ResponseBase.java:716)
at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:150)
at javax.servlet.ServletResponseWrapper.getOutputStream(ServletResponseWrapper.java:136)
at org.apache.jsp.temp$jsp._jspService(temp$jsp.java:114)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet$JspServletWrapper.service(IDEJspServlet.java:173)
at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet.serviceJspFile(IDEJspServlet.java:246)
at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet.service(IDEJspServlet.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:226)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.netbeans.modules.web.monitor.catalina.MonitorValve.invoke(MonitorValve.java:148)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:534)
Desculpe pelo tamanho do texto. :lol: