Tratamento de erros numa servlet

0 respostas
F

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?

Criado 3 de janeiro de 2007
Respostas 0
Participantes 1