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

[SOLUCIONADO] Error con JavaEE en un EJB null pointer exception

Estas en el tema de Error con JavaEE en un EJB null pointer exception en el foro de Java en Foros del Web. Estoy aprendiendo J2EE y probando un carrito de compras muy simple, no para un sitio si no para probar el uso de EJBs Stateful. Tengo ...
  #1 (permalink)  
Antiguo 21/05/2015, 20:23
Avatar de Hyemin  
Fecha de Ingreso: agosto-2014
Mensajes: 147
Antigüedad: 9 años, 8 meses
Puntos: 0
Error con JavaEE en un EJB null pointer exception

Estoy aprendiendo J2EE y probando un carrito de compras muy simple, no para un sitio si no para probar el uso de EJBs Stateful.

Tengo en una web de pruebas 3 botones, Agregar item #1, AGregar Item #2 y Ver Items

los botones llaman a un @Named bean llamado manager a los metodos manager.agregaritem1 y asi sucesivamente.

El manager a su vez tiene en el metodo agregaritem1 la llamada a la clase de control mantenimientoite,]ms.java que es laque tiene los metodos de agregar items

La clase hace esto para el boton #1
Código Java:
Ver original
  1. public void agregarItem1Carrito(){
  2.          
  3.             Query query = em.createQuery("SELECT  i from item i where i.id_item=1");
  4.            
  5.         //Luego de que definimos la query tenemos que castearla a un objeto item    
  6.         item i = (item)query.getSingleResult();
  7.         System.out.println("El item es:"+i.getTitulo());
  8.    
  9.        carrito.agregarItem(i);
  10.      }

Si hago el debug netbeans me muestra que todo esta correcto y que alfinal carrito.agregarItem(i) contiene un item correcto.

De hecho para probar le agregue antes una impresion en pantalla que muestre el titulo del item que recoge y se muestra perfecto.

Pense que podria estar el error en el @Stateful bean llamado carrito asi que lo debugeo tambien
Código Java:
Ver original
  1. @Stateful
  2. @StatefulTimeout(value=20, unit = TimeUnit.SECONDS)
  3.  
  4. public class Carrito {
  5.    
  6.    
  7.     public List<item> cosas;
  8.    
  9.     public void agregarItem (item i){
  10.        
  11.         cosas.add(i);
  12.     }

Netbeans en el debug me muestra que cuando el metodo agregarItem es invocado en esta parte, esta recibiendo un objeto correcto de laclase.

Sin embargo me salta un null pointer exception:
javax.ejb.EJBTransactionRolledbackException
at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleInCall erTx(CMTTxInterceptor.java:163)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCall erTx(CMTTxInterceptor.java:253)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMT TxInterceptor.java:342)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvoc ation(CMTTxInterceptor.java:239)
at org.jboss.invocation.InterceptorContext.proceed(In terceptorContext.java:309)

Caused by: java.lang.NullPointerException
at ejb.Carrito.agregarItem(Carrito.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.jboss.as.ee.component.ManagedReferenceMethodIn terceptor.processInvocation(ManagedReferenceMethod Interceptor.java:52)
  #2 (permalink)  
Antiguo 22/05/2015, 01:09
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Error con JavaEE en un EJB null pointer exception

Caused by: java.lang.NullPointerException
at ejb.Carrito.agregarItem(Carrito.java:38)


En ningun sitio inicializas la lista cosas, por lo que esta a null.

Un saludo
__________________
If to err is human, then programmers are the most human of us

Etiquetas: clase, ejb, exception, netbeans, null, pointer
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:44.