Onde está sendo executado esse código, em um Servlet puro, ou em um JSP? Se for em um JSP há vários web containers (tal como o iPlanet Application Server 6.5) que não permitem que se faça o que você quer fazer, não obstante o que está definido na especificação de servlets.
Isso ocorre quando uma chamada a getWriter() eh feita apos a chamda a response.getOutputStream();, ou vice-versa. Verifique o seu codigo por algo que chame o getOutputStream() ou getWriter() mais de uma vez.
O problema é que eu uso um jsp pra retornar a imagem e ele automáticamente chama o getWriter() me disseram que eu tenho que usar um servlet “puro” pra fazer isso.
Alguém saberia como fazer ?
Utilizando o Jetty também recebo essa exceção quando abro páginas que fazem requisições a um servlet e também contém imagens, que são geradas a partir de outro servlet.
Mas no meu caso só é irritante, pois as imagens são mostradas corretamente.
[quote=amilhoranza]O problema é que eu uso um jsp pra retornar a imagem e ele automáticamente chama o getWriter() me disseram que eu tenho que usar um servlet “puro” pra fazer isso.
Alguém saberia como fazer ?[/quote]
Galera Descobri o problema !!!
É só tirar as quebras de linha do jsp que exibe a imagem exemplo:
Eu tinha o seguinte código no meu jsp que exibe a imagem
<jsp:useBean id=“img” scope=“page” class=“com.catho.Boleto” />
<%
response.setContentType(“image/jpeg”);
response.setHeader (“Pragma”, “no-cache”);
response.setHeader (“Cache-Control”, “no-cache”);
response.setDateHeader (“Expires”,0);
%>
<%!boolean retorno;%><%! String barras;%>
<%
barras = request.getParameter(“p_barra”);
retorno = img.criaImagem(barras,pageContext,50);
%>
sei que esse tópico é um pouco antigo, mas estive com o mesmo problema. Consegui solucionar, basta fazer um out.clear() antes de chamar outStream.write();
Se alguém precisar segue exemplo abaixo: