Problema con RequestDispatcher.forward(request, response)

frantic
01 de Abril del 2005
Saludos a todos,

Tengo un inconveniente con un servlet, cuando hago un forward para ir a otra página me lanza una NullPointerException y la verdad le he dado vueltas y nada de nada no ubico el problema.
Este servlet lo que hace es utilizar un bean para verificar si un usuario existe y dar error si no existe o por el contrario crearle una sesión en caso de existir, el problema es que al realizar el forward a un jsp ubicado en un directorio llamado jso dentro de la aplicación me lanza una excepcion, les dejo el código del servlet e indico con comentarios donde se produce el error para que lo vean con mayor facilidad:

package registro.servlets;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpSession;
import registro.beans.ConnectionHelper;
import registro.beans.UsuariosHelper;
import registro.clases.Usuarios;

public class VerificacionUsuario extends HttpServlet {

public void doPost(
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException {

Usuarios user = new Usuarios();

user.setIdUsuario(request.getParameter("idUsuario"));
user.setPassword(request.getParameter("password"));

try{
UsuariosHelper userHelp = new UsuariosHelper();
userHelp.setUser(user); //Seteamos el objeto usuario de la clase Helper

user = userHelp.buscarUsuario(); //Buscamos el usuario en la base de datos
if(user != null){
//El usuario existe ahora debemos comprobar si tiene o no acceso a la aplicación
/* Esto esta comentado ya que aun no conozco el parametro a comprobar
habria que verificar si el usuario está activo y ademas si tiene acceso a la
aplicacion Registro de Ordenes*/

//Si al final de las comprobaciones el usuario es correcto le creamos una sesión
HttpSession session = request.getSession(true); //Creamos la nueva session
/*Le colocamos el objeto user a la session asi nos aseguramos de que tendremos disponible
los datos que necesitemos de el mismo en cualquier momento*/
session.setAttribute("user", user);




//realizamos un forward a la pagina de seleccion de centro directivo



ServletContext context = getServletContext();
RequestDispatcher rd = context.getRequestDispatcher("/jsp/selecCentro.jsp");

System.out.println(context.getRealPath("/jsp/selecCentro.jsp"));
System.out.println(context.toString());

//rd.include(request, response);



rd.forward(request, response);

}
else{
//en el caso de que el usuario o el password sean incorrectos
throw new Exception("El usuario y/o el password son incorrectos");
}
}catch(Exception ex){
//Si ocurre alguna excepcion debemos enviar el mensaje a una pagina de error adecuada

RequestDispatcher rd = request.getRequestDispatcher("/jsp/error.jsp");


//Seteamos el mensaje de error
String title = "Error de búsqueda de usuario";
String msg = "Imposible encontrar el usuario";

//Agregamos el mensaje que proviene de la Exception que se disparo
String exMsg = ex.getMessage();

//Establecemos una url de vuelta a la página anterior para el usuario
String backUrl = "login.jsp";
String urlName = "Login";

this.log(ex.toString()); //Generamos log en el servidor

ex.printStackTrace(); //para visualizar la traza de la excepción en consola

//Seteamos los atributos
request.setAttribute("title", title);
request.setAttribute("msg", msg);
request.setAttribute("exMsg", exMsg);
request.setAttribute("backUrl", backUrl);
request.setAttribute("urlName", urlName);
rd.forward(request, response); //Justo en esta linea es disparado el error

}
}

public void doGet(
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException {
}

}


Hice pruebas de imprimir la ruta a ver si era eso pero al parecer esta perfecta la ruta que me arroja por consola es...
C:Archivos de programaApache Tomcat 4.0webappsRegistroOrdenesjspselecCentro.jsp

Si alguien me puede dar una luz con esto le estare muy agradecido....
Saludos.-

frantic
01 de Abril del 2005
Dejo aquí el Stack que me arroja la excepcion....
Gracias miles...

*******************************
java.lang.NullPointerException
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:752)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:431)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:355)
at registro.servlets.VerificacionUsuario.doPost(VerificacionUsuario.java:83)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
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.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.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:498)