Boas,
Tenho uma aplicação que me permite fazer o download de um ficheiro xml. Isto é implementado recorrendo a uma servlet. A servlet é responsável pela construcção do ficheiro (ir buscar os dados e construir o XML) e pelo seu envio.
O código para ler do ficheiro e escrever no response é o seguinte:
fin = new FileInputStream(tempFile);
_bufIn = new BufferedInputStream(fin);
ServletOutputStream _out = response.getOutputStream();
// Repeat until end of file
for (;;) {
int data = _bufIn.read();
// Check for EOF
if (data == -1){
break;
}
else {
_out.write((char) data);
}
}
O meu problema é quando ocorre um erro. Se o erro ocorre antes de eu chamar “response.getOutputStream();”, eu construo uma página de erro em html (utilizando “response.getWriter();”) e retorno-a.
Então e se o erro ocorrer depois de chamar o getOutputStream()? Já não posso chamar o “getWriter()”.
Como é que consigo retornar a minha página xml de erro?