Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/05/2015, 20:23
Avatar de Hyemin
Hyemin
 
Fecha de Ingreso: agosto-2014
Mensajes: 147
Antigüedad: 10 años, 3 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)