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

Error en el metodo añadir

Estas en el tema de Error en el metodo añadir en el foro de Java en Foros del Web. Me da error al añadir al carrito y no tengo ninguna variable nula porque las visualice system.out.println <%@ page language="java" contentType="text/html; charset=ISO-8859-15" pageEncoding="ISO-8859-15" session="true"%> <%@page ...
  #1 (permalink)  
Antiguo 11/03/2013, 23:37
 
Fecha de Ingreso: febrero-2013
Mensajes: 6
Antigüedad: 11 años, 1 mes
Puntos: 0
Error en el metodo añadir

Me da error al añadir al carrito y no tengo ninguna variable nula porque las visualice system.out.println

<%@ page language="java" contentType="text/html; charset=ISO-8859-15"
pageEncoding="ISO-8859-15" session="true"%>
<%@page import="baseDatos.game"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="baseDatos.compra"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Carrito</title>
</head>
<body>

<%
Integer id;
String nombre;
Float precio;
String descripcion;
Integer stock;
String plataforma;
String categorias;
Integer pegi;
String fabricante;
String imagen;



HttpSession sesion = request.getSession();
compra compra = (compra)sesion.getAttribute("compra");

id=Integer.parseInt (request.getParameter("id"));
nombre=request.getParameter("nombre");
precio=Float.parseFloat (request.getParameter("precio"));
descripcion=request.getParameter("descripcion");
stock=Integer.parseInt (request.getParameter("stock"));
plataforma=request.getParameter("plataforma");
categorias=request.getParameter("categorias");
pegi=Integer.parseInt (request.getParameter("pegi"));
fabricante=request.getParameter("fabricante");
imagen=request.getParameter("imagen");


sesion.setAttribute("game",new game(id,nombre,precio,descripcion,stock,plataforma ,categorias,pegi,fabricante,imagen));

game game= new game(id,nombre,precio,descripcion,stock,plataforma ,categorias,pegi,fabricante,imagen);
compra.AñadirGame(game);
sesion.setAttribute("compra", new compra());

try{
for(int i=0; i<compra.getCompra().size(); i++){

out.println(compra.getCompra().get(i).getIdgame()+ "<br>");
out.println(compra.getCompra().get(i).getGamename( )+"<br>");
out.println(compra.getCompra().get(i).getGameprice ()+"<br>");
out.println(compra.getCompra().get(i).getGamedescr iption()+"<br>");
out.println(compra.getCompra().get(i).getStock()+" <br>");
out.println(compra.getCompra().get(i).getPlatform( )+"<br>");
out.println(compra.getCompra().get(i).getCategorie s()+"<br>");
out.println(compra.getCompra().get(i).getPegi()+"< br>");
out.println(compra.getCompra().get(i).getFabricant e()+"<br>");
out.println(compra.getCompra().get(i).getImagen()+ "<br>");
}
sesion.setAttribute("compra",compra);
}catch(NullPointerException e){}



%>

<jsp:forward page="carrito2.jsp"></jsp:forward>
</body>
</html>



y el metodo


package baseDatos;

import java.util.ArrayList;

public class compra {

//Atributos
private ArrayList<game> compra= new ArrayList<game>
();

//Constructor

public compra(){

this.compra= new ArrayList<game>();

}

//Propiedades

public ArrayList<game> getCompra(){

return compra;
}

//Metodo

public void AñadirGame(game a){

this.compra.add(a);

}
}

y el error que me sale

org.apache.jasper.JasperException: An exception occurred processing JSP page /carrito.jsp at line 64

61: sesion.setAttribute("game",new game(id,nombre,precio,descripcion,stock,plataforma ,categorias,pegi,fabricante,imagen));
62:
63: game game= new game(id,nombre,precio,descripcion,stock,plataforma ,categorias,pegi,fabricante,imagen);
64: compra.AñadirGame(game);
65: sesion.setAttribute("compra", new compra());
66:
67: try{


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet .java:803)


causa raíz

java.lang.NullPointerException
org.apache.jsp.carrito_jsp._jspService(carrito_jsp .java:117)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet .java:803)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet .java:803)


nota La traza completa de la causa de este error se encuentra en los archivos de diario de Apache Tomcat/6.0.16.

Aver si encontrais el error:(
  #2 (permalink)  
Antiguo 12/03/2013, 04:50
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 en el metodo añadir

Pues debe ser que no sabes donde está realmente game dentro de compra cuando lo has añadido, intentas recuperarlo y ejecutas un metodo sobre algo que te viene null.

Cuando crees un objeto y le introduzcas otro tienes que saber como acceder directamente al objeto introducido.

Por tanto

Supongo que Compra tiene una lista de Game que se llame compra en su interior.

¿Cuando se inicializa el objeto de la clase Compra esa lista se crea como new ArrayList? => Si no lo hace entonces "compra.AñadirGame(game);" intentaria añadir game sobre un objeto null.

Si no, tendras un null en alguno de los System.out porque no estarán bien seteados...

Vete revisando eso.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: jsp, metodo, servlet, string
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 21:59.