Javax.servlet.ServletException

Olá pessoal, td blzz

Estou utilizando Oracle 9i, Tomcat 4.1, JasperReports 0.6.8 e iReport 0.4.0
Se alguém puder me ajudar agradeço desde já :thumbup:

Qdo chamo o servlet no browser, um erro acontece.
±----------------------------------------+
a mensagem de erro é esta:
±----------------------------------------+

HTTP Status 500 -

Exception report
message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception
javax.servlet.ServletException
at GeraRelatorio.doGet(GeraRelatorio.java:42)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:696)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)

±------------------------------------------+
e esse é o código q estou utilizando:
±------------------------------------------+

import net.sf.jasperreports.engine.*;

import java.util.HashMap;
import java.sql.*;
import java.io.InputStream;

import javax.servlet.*;
import javax.servlet.http.*;

public class GeraRelatorio extends HttpServlet {

    private static final String driver = "oracle.jdbc.driver.OracleDriver";
    private static final String url = "jdbc:oracle:thin:@server:1521:oracle";
    private static final String login = "usuario";
    private static final String passwd = "senha";

    private static final String urlBase = "/report/";
    private static final String pageRoot = "C:/Arquivos de programas/Apache Group/Tomcat 4.1/webapps/webapp2";

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {

	try {
	    // carrega o relatório compilado
	    InputStream stream = getServletContext().getResourceAsStream("/usuarios.jasper");
	    JasperReport relatorio = JasperManager.loadReport(stream);

	    // estabelece uma conexão JDBC (seria melhor usar DataSources J2EE)
	    Class.forName(driver);
	    Connection con = DriverManager.getConnection(url, login, passwd);

	    //Determina o nome do arquivo temporário
	    String nomeArq = request.getSession().getId() + ".pdf";

	    // executa o relatório e salva no arquivo temporário
	    JasperPrint impressao = JasperManager.fillReport(relatorio, new HashMap(), con);
	    JasperManager.printReportToPdfFile(impressao, pageRoot + urlBase + nomeArq);

	    // envia um redirect para o arquivo
	    response.sendRedirect(urlBase + nomeArq);
	}
	catch (Exception e) {
	    throw new ServletException(e);
	}
    }
}

EDIT - Pus os tags “code” para você. Por favor, quando postar código use os tags.
Mais uma coisa - qual é a linha 42 no código acima?

OK, a linha 42 é essa aqui.

throw new ServletException(e);

bota pra imprimir o stack trace dessa exceção.

me de um exemplo e stack trace, ainda ñ entendi…

me de um exemplo e stack trace, ainda ñ entendi…

catch (Exception e) { e.printStackTrace(); throw new ServletException(e); }

coloque essa instrução mas ainda ñ fez nada, mas tem uma linha do erro q aparece somente no final.

java.lang.NullPointerException
at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2150)
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2163)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2631)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:734)
at java.io.ObjectInputStream.(ObjectInputStream.java:253)