Foros del Web » Programación para mayores de 30 ;) » Java »

Error [Error de servlet]-[]: java.lang.NullPointerException

Estas en el tema de Error [Error de servlet]-[]: java.lang.NullPointerException en el foro de Java en Foros del Web. ¡Buenas tardes a todos! Tengo un inconveniente con la excepción: java.lang.NullPointerException Estoy trabajando bajo el ambiente J2EE (JSP, Servlet's) en el mantenimiento de un sistema ...
  #1 (permalink)  
Antiguo 29/11/2010, 15:18
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
Sonrisa Error [Error de servlet]-[]: java.lang.NullPointerException

¡Buenas tardes a todos!

Tengo un inconveniente con la excepción: java.lang.NullPointerException
Estoy trabajando bajo el ambiente J2EE (JSP, Servlet's) en el mantenimiento de un sistema de administración de aquí de la Gerencia.
Estoy elaborando un formulario que le da "formato" a una carta (emiten cartas como reportes de ciertos aspectos administrativos de aquí de la Gerencia).
Tengo dos JSP, uno que se llama "GeneraCarta.jsp" y otro "FormatoCarta.jsp;
GeneraCarta.jsp: Es la interfaz de la carta (cajas de texto, menús desplegables, etc.)
FormatoCarta.jsp: Genera el documento en cierto formato para poderlo imprimir.
Tengo mi servlet llamado "GeneraCarta.java".
Depurando línea a línea, noté que se detiene la depuración al momento de llegar aquí (GeneraCarta.java: marcado con "NEGRITA"):

public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

//System.out.println("Ejecutando doPost...");
HttpSession session=req.getSession(true);
String usuario = (String) session.getAttribute("usuario");
session.setAttribute("usuario",usuario);

String idusuario=usuario;//la variable usuario contiene el num_emp
Cotidianos objmemos=new Cotidianos();
Usuarios objusuarios=new Usuarios();
boolean ok=false;

//se pasa los parametros a variables
String numero = (req.getParameter("Numero"));//al ultimo numero gurado le aumentamos uno String year_memo=(req.getParameter("Year"));
//String no_clte=(req.getParameter("Idclte"));
//System.out.println("Contenido de year_memo"+ year_memo);
/*******************************************/
String empresa = (req.getParameter("empresas"));
String band = (req.getParameter("band"));
String para;
if (band == "si")
{
para = (req.getParameter("memo"));
}
else
{
para = (req.getParameter("para_memo"));
}
int noClte=(objmemos.getIdCliente(para,empresa));
String no_clte=String.valueOf(noClte);

Vector memo=new Vector();
Vector clte=new Vector();
memo=objmemos.consultaIndvMemo(numero, year_memo);
clte=objmemos.consultaClte(no_clte);
String num_emp= idusuario;
String tipo= objusuarios.get_TipoUsuario(num_emp);
//OBTENER LOS E-MAILS DE CCP.
String emails=(req.getParameter("ccp"));

String copiaccp=emails.trim()+"/";//Auxiliar de TEXAREA para poder dividir en campos cada nombre
int p=copiaccp.indexOf("");
int q=copiaccp.indexOf("/");
String nombre=copiaccp.substring(p,q);
String direc="";
String asunto="";
String textoCarta="";
String correo="";
StringTokenizer st=new StringTokenizer(nombre,"\r");

El código del JSP "FormatoCarta" recibe el parámetro "numero", vean:

String dia=request.getParameter("dia");
String mes=request.getParameter("mes");
String anio=request.getParameter("anio");
String numero=request.getParameter("numero"); //Aquí lo recibe
String year=request.getParameter("year");
String cliente=request.getParameter("cliente");
String asunto=request.getParameter("asunto");
String textoCarta=request.getParameter("textoCarta");
if(cliente!=null) cliente="";
cliente=cliente+'\n';
String puesto=request.getParameter("puesto");
if(puesto!=null) puesto="";
puesto=puesto.replace('º','\r'); //regreso los retornos de carro
puesto=puesto.replace('ç','\n'); //regreso los enter
String direccion=request.getParameter("direccion");
if(direccion!=null) direccion="";
direccion=direccion.replace('º','\r'); //regreso los retornos de carro
direccion=direccion.replace('ç','\n'); //regreso los enter
direccion=direccion.replace('·','#'); //regreso los #
direccion=direccion.replace('\'','"');
String texto=request.getParameter("texto");
if(texto!=null) texto="";
texto=texto.replace('º','\r'); //regreso los retornos de carro
texto=texto.replace('ç','\n'); //regreso los enter
texto=texto.replace('\'','"'); //regreso las "
texto=texto.replace('·','#');
texto=texto.replace('|','?');
texto=texto.replace('ª','%');
String de=request.getParameter("de");
String ccpe=request.getParameter("ccpe");
String ccp=request.getParameter("ccp");

¿Por qué creen que se está generando esa excepción?
Nota:
Ya probé ponerle una condición "if" o capturar la expcepción con "try y catch", pero aún no obtengo resultados, y por tanto, mi error está en que no puede generarme el documento aunque al darle clic para que lo genere aparece "documento generado satisfactoriamente" cuando abre la otra ventana sale: Error 404, no se puede mostrar la página.

¡Espero me entiendan en lo que expliqué y puedan ayudarme a encontrar una solución definitiva!
¡Estoy desesperado!
  #2 (permalink)  
Antiguo 30/11/2010, 05:22
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: Error [Error de servlet]-[]: java.lang.NullPointerException

Las condiciones las tienes mal
como por ejemplo
if(cliente!=null) cliente=""; la condicion seria la reves, if(cliente == null)
y la variable emails no compruebas si es null.

Y no se usa el == para comparar. se usa el equals.

if (band == "si") \\ cambiarlo por if("si".equals(band))
  #3 (permalink)  
Antiguo 01/12/2010, 02:49
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error [Error de servlet]-[]: java.lang.NullPointerException

Como bien dice Erickvk, para comparar Objetos (entre los que se incluyen los strings) se utiliza el método equals(). if(unObjeto.equals(otroObjeto)) {
//etc
}
En el caso de null, no es un objeto, por lo que
if (unObjeto==null) {
//Si el objeto es null lo puedes procesar para cubrir esta falla o puedes lanzar una excepción
} else {
// Trabajas con el objeto
}
Nota:
if (band == "si") \\ cambiarlo por if("si".equals(band)) --> Seré muy maniático pero me gusta más if(band.equals("si"))

Etiquetas: servlet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:49.