JavaDabbaDoo.org -Tu comunidad Java parlante JPA - Visual Web JSF
Inicio | Cursos infosintesis.net liberados | Java EE | Consultar la tabla de los usuarios reg. con JPA y VW JSF
Consultar la tabla de los usuarios registrados con JPA y VW JSF
Paso 5: Operativa

Ejecutar la aplicación Visual Web JSF

Al ejecutar la aplicación vemos que en vez de mostrar los datos aparece el texto No items found.

Navegador - Mostrar POJOs Usuario en la Tabla

Y en la pestaña GlassFish V2 vemos que ha habido el siguiente error NullPointerException, at com.empresa.pojos.jpa.UsuarioJpaController.getEntityManager(UsuarioJpaControler.java:26)

NetBeans 6 - Ejecutar aplicación Visual Web JSF - Pestaña GlassFish | getEntityManger NullPointerException

Por un problema todavía no resuelto, la variable de instancia emf no está inicializada. Esta variable de instancia tendría que tener la referencia de un Objeto de tipo EntityManagerFactory tras haber sido inyectada la anotación @PersistenceUnit(unitName = "condorPU")

package com.empresa.pojos.jpa;

import com.empresa.pojos.jpa.exceptions.NonexistentEntityException;
import com.empresa.pojos.jpa.exceptions.RollbackFailureException;
import java.util.List;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceUnit;
import javax.persistence.Query;
import javax.persistence.EntityNotFoundException;
import javax.transaction.UserTransaction;

public class UsuarioJpaController {
 @Resource
 private UserTransaction utx = null;
 @PersistenceUnit(unitName = "condorPU")
 private
EntityManagerFactory emf = null;

 public EntityManager getEntityManager() {
  return emf.createEntityManager();
 }

 .
 . 
}

Para solventar este problema vamos a crear en la Clase controladora UsuarioJpaController una instancia de tipo EntityMangerFactory invocando al método estático createEntityManagerFactory(...) de la Clase Persistence

package com.empresa.pojos.jpa;

import com.empresa.pojos.jpa.exceptions.NonexistentEntityException;
import com.empresa.pojos.jpa.exceptions.RollbackFailureException;
import java.util.List;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceUnit;
import javax.persistence.Query;
import javax.persistence.EntityNotFoundException;
import javax.persistence.Persistence;
import javax.transaction.UserTransaction;

public class UsuarioJpaController {
 @Resource
 private UserTransaction utx = null;
 @PersistenceUnit(unitName = "condorPU")
 private
EntityManagerFactory emf = null;

 public EntityManager getEntityManager() {
  System.out.println("********** emf: " + emf);
  if (emf == null){
   emf = Persistence.createEntityManagerFactory("condorPU");
  }

  return emf.createEntityManager();
 }

 .
 . 
}

Volvemos ejecutar la aplicación Visul Web JSF y esta vez sí que vemos la Tabla Usuarios rellenada

Navegador - Mostrar POJOs Usuario en la Tabla
Página anterior
Ignasi Pérez Valls
Infosintesis Solutions Group


Junio 2009
JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...