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

jpa IllegalArgumentException

Estas en el tema de jpa IllegalArgumentException en el foro de Java en Foros del Web. hola a todos, tengo el siguiente problema no se porque antes funcionaba pero ahora no, tengo una tabla en un jsf que se cargaba con ...
  #1 (permalink)  
Antiguo 11/11/2014, 11:57
Avatar de jocryo  
Fecha de Ingreso: agosto-2014
Mensajes: 38
Antigüedad: 10 años, 2 meses
Puntos: 0
Exclamación jpa IllegalArgumentException

hola a todos, tengo el siguiente problema

no se porque antes funcionaba pero ahora no, tengo una tabla en un jsf que se cargaba con una List que me traia el jsp, antes funcionaba pero ahora no, la clase usuarioEjb no me encuentra la clase usuario lo cual me parece supremamente extraño ya que se encuentran en el mismo proyecto, que puede ser que haga que de repente no ejecute nunca mas?


el error que me sale es:
Código Java:
Ver original
  1. Grave:   java.lang.IllegalArgumentException: No [EntityType] was found for the key class [co.com.glokal.almaviva.modelo.entity.Usuario] in the Metamodel - please verify that the [Entity] class was referenced in persistence.xml using a specific <class>co.com.glokal.almaviva.modelo.entity.Usuario</class> property or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> element.

mi persistence.xml es:
Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
  3.   <persistence-unit name="almaviva-ejbPU" transaction-type="JTA">
  4.     <jta-data-source>basepruebas</jta-data-source>
  5.     <exclude-unlisted-classes>false</exclude-unlisted-classes>
  6.     <properties/>
  7.   </persistence-unit>
  8. </persistence>

mi clase UsuarioEjb.java es:
Código Java:
Ver original
  1. package co.com.glokal.almaviva.controlador.beanejb;
  2.  
  3. import co.com.glokal.almaviva.modelo.dao.UsuarioDao;
  4. import co.com.glokal.almaviva.modelo.daobeans.UsuarioFacade;
  5. import co.com.glokal.almaviva.modelo.entity.Usuario;
  6. import java.util.List;
  7. import java.util.logging.Level;
  8. import java.util.logging.Logger;
  9. import javax.ejb.Stateless;
  10. import javax.ejb.LocalBean;
  11.  
  12. /**
  13.  *
  14.  * @author jose.ceballos
  15.  */
  16. @Stateless
  17. @LocalBean
  18. public class UsuarioEjb {
  19.    
  20. //    private UsuarioFacade usuarioDao = new UsuarioFacade();
  21.     // Add business logic below. (Right-click in editor and choose
  22.     // "Insert Code > Add Business Method")
  23.    
  24.     public List<Usuario> consultar(){
  25.         List<Usuario> lista = null;
  26.         try {
  27.             UsuarioFacade usuarioDao = new UsuarioFacade();
  28.             lista = usuarioDao.findAll();
  29.         } catch (Exception ex) {
  30.             Logger.getLogger(UsuarioEjb.class.getName()).log(Level.SEVERE, null, ex);
  31.         }
  32.         return lista;
  33.     }
  34. }

y mi UsuarioFacade.java es:
Código Java:
Ver original
  1. package co.com.glokal.almaviva.modelo.daobeans;
  2.  
  3. import co.com.glokal.almaviva.modelo.entity.Usuario;
  4. import java.util.List;
  5. import javax.ejb.Stateless;
  6. import javax.persistence.EntityManager;
  7. import javax.persistence.EntityManagerFactory;
  8. import javax.persistence.Persistence;
  9. import javax.persistence.PersistenceContext;
  10.  
  11. /**
  12.  *
  13.  * @author jose.ceballos
  14.  */
  15. @Stateless
  16. public class UsuarioFacade extends AbstractFacade<Usuario> implements UsuarioFacadeLocal {
  17.     @PersistenceContext(unitName = "almaviva-ejbPU")
  18.     private EntityManager em;
  19.  
  20.     /*@Override
  21.     protected EntityManager getEntityManager() {
  22.         return em;
  23.     }*/
  24.     @Override
  25.     protected EntityManager getEntityManager() {
  26.         EntityManagerFactory emf = Persistence.createEntityManagerFactory("almaviva-ejbPU");
  27.         /*EntityManager ecm = emf.createEntityManager(); */
  28.         em = emf.createEntityManager();
  29.         return em;
  30.     }
  31.     public UsuarioFacade() {
  32.         super(Usuario.class);
  33.     }
  34.    
  35.     public List<Object> login(Object user, Object pass) {        
  36.         return getEntityManager().createQuery("SELECT T.id, T.nombre, T.password, T.usuario FROM Usuario T WHERE T.usuario = '" + user + "' and T.password = '" + pass + "'").getResultList();
  37.     }
  38.    
  39. }


gracias por su atención
  #2 (permalink)  
Antiguo 12/11/2014, 01:41
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: jpa IllegalArgumentException

Buenas,

Se te ha olvidado poner el codigo de la clase mas importante: co.com.glokal.almaviva.modelo.entity.Usuario

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 12/11/2014, 06:20
Avatar de jocryo  
Fecha de Ingreso: agosto-2014
Mensajes: 38
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: jpa IllegalArgumentException

el codigo de la clase Usuario es:
Código Java:
Ver original
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6.  
  7. package co.com.glokal.almaviva.modelo.entity;
  8.  
  9. import java.io.Serializable;
  10. import javax.persistence.Basic;
  11. import javax.persistence.Column;
  12. import javax.persistence.Entity;
  13. import javax.persistence.GeneratedValue;
  14. import javax.persistence.GenerationType;
  15. import javax.persistence.Id;
  16. import javax.persistence.NamedQueries;
  17. import javax.persistence.NamedQuery;
  18. import javax.persistence.Table;
  19. import javax.persistence.UniqueConstraint;
  20. import javax.validation.constraints.NotNull;
  21. import javax.validation.constraints.Size;
  22. import javax.xml.bind.annotation.XmlRootElement;
  23.  
  24. /**
  25.  *
  26.  * @author jose.ceballos
  27.  */
  28. @Table(name = "usuario", uniqueConstraints = {
  29.     @UniqueConstraint(columnNames = {"usuario"})})
  30. @XmlRootElement
  31. @NamedQueries({
  32.     @NamedQuery(name = "Usuario.findAll", query = "SELECT u FROM Usuario u"),
  33.     @NamedQuery(name = "Usuario.findByUsuario", query = "SELECT u FROM Usuario u WHERE u.usuario = :usuario"),
  34.     @NamedQuery(name = "Usuario.findByPassword", query = "SELECT u FROM Usuario u WHERE u.password = :password"),
  35.     @NamedQuery(name = "Usuario.findByNombre", query = "SELECT u FROM Usuario u WHERE u.nombre = :nombre"),
  36.     @NamedQuery(name = "Usuario.findById", query = "SELECT u FROM Usuario u WHERE u.id = :id")})
  37. public class Usuario implements Serializable {
  38.     private static final long serialVersionUID = 1L;
  39.     @Basic(optional = false)
  40.     @NotNull
  41.     @Size(min = 1, max = 50)
  42.     @Column(name = "usuario", nullable = false, length = 50)
  43.     private String usuario;
  44.     @Basic(optional = false)
  45.     @NotNull
  46.     @Size(min = 1, max = 50)
  47.     @Column(name = "password", nullable = false, length = 50)
  48.     private String password;
  49.     @Basic(optional = false)
  50.     @NotNull
  51.     @Size(min = 1, max = 50)
  52.     @Column(name = "nombre", nullable = false, length = 50)
  53.     private String nombre;
  54.     @Id
  55.     @GeneratedValue(strategy = GenerationType.IDENTITY)
  56.     @Basic(optional = false)
  57.     @Column(name = "id", nullable = false)
  58.     private Integer id;
  59.  
  60.     public Usuario() {
  61.     }
  62.  
  63.     public Usuario(Integer id) {
  64.         this.id = id;
  65.     }
  66.  
  67.     public Usuario(Integer id, String usuario, String password, String nombre) {
  68.         this.id = id;
  69.         this.usuario = usuario;
  70.         this.password = password;
  71.         this.nombre = nombre;
  72.     }
  73.  
  74.     public String getUsuario() {
  75.         return usuario;
  76.     }
  77.  
  78.     public void setUsuario(String usuario) {
  79.         this.usuario = usuario;
  80.     }
  81.  
  82.     public String getPassword() {
  83.         return password;
  84.     }
  85.  
  86.     public void setPassword(String password) {
  87.         this.password = password;
  88.     }
  89.  
  90.     public String getNombre() {
  91.         return nombre;
  92.     }
  93.  
  94.     public void setNombre(String nombre) {
  95.         this.nombre = nombre;
  96.     }
  97.  
  98.     public Integer getId() {
  99.         return id;
  100.     }
  101.  
  102.     public void setId(Integer id) {
  103.         this.id = id;
  104.     }
  105.  
  106.     @Override
  107.     public int hashCode() {
  108.         int hash = 0;
  109.         hash += (id != null ? id.hashCode() : 0);
  110.         return hash;
  111.     }
  112.  
  113.     @Override
  114.     public boolean equals(Object object) {
  115.         // TODO: Warning - this method won't work in the case the id fields are not set
  116.         if (!(object instanceof Usuario)) {
  117.             return false;
  118.         }
  119.         Usuario other = (Usuario) object;
  120.         if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
  121.             return false;
  122.         }
  123.         return true;
  124.     }
  125.  
  126.     @Override
  127.     public String toString() {
  128.         return "co.com.glokal.almaviva.controlador.entity.Usuario[ id=" + id + " ]";
  129.     }
  130.    
  131. }

Etiquetas: clase, jpa, jsp
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 09:04.