InstantiationException en entidad persistente

Tengo un problema cuando obtengo un objeto de hibernación. El stacktrace es:

org.hibernate.InstantiationException: Could not instantiate entity: main.java.com.gwt.app.server.User
at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:114)
at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:123)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiate(AbstractEntityTuplizer.java:603)
at org.hibernate.persister.entity.AbstractEntityPersister.instantiate(AbstractEntityPersister.java:3911)
at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1422)
at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1411)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1446)
at org.hibernate.loader.Loader.getRow(Loader.java:1355)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:611)
at org.hibernate.loader.Loader.doQuery(Loader.java:829)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
at org.hibernate.loader.Loader.loadEntity(Loader.java:2037)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:86)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:76)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3293)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:496)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:477)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:227)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:285)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:152)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1090)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:1005)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:998)
at main.java.com.gwt.app.server.User.loadUser(User.java:50)
at main.java.com.gwt.app.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:22)
at main.java.com.gwt.app.client.Main.main(Main.java:11)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:111)
... 25 more
Caused by: java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:965)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:900)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:455)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
at main.java.com.gwt.app.server.User.<init>(User.java:33)
... 30 more

Mi archivo User.hbm.xml es:

<hibernate-mapping package="main.java.com.gwt.app.server"> 
<class name="User" table="USR">
    <id column="login" name="login" type="java.lang.String"/>
    <property column="password" name="password" type="java.lang.String"/>
</class>
</hibernate-mapping>

y clase de usuario:

package main.java.com.gwt.app.server;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;

public class User {
private String login;
private String password;
private SessionFactory sesionFactory;
private Session sesion;

public void setSesionFactory(SessionFactory sesionFactory){
    this.sesionFactory = sesionFactory;
    this.sesion = this.sesionFactory.openSession();
}

public User(String user, String pass) {
    ClassPathResource res = new ClassPathResource("resources/spring.xml");
    XmlBeanFactory factory = new XmlBeanFactory(res);
    this.sesionFactory = (SessionFactory)factory.getBean("sessionFactory");
    this.sesion = this.sesionFactory.openSession();
    this.login = user;
    this.password = pass;
}
public User() {
}

public String getLogin() {
    return login;
}
public void setLogin(String login) {
    this.login = login;
}
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}

public String loadUser(String log){
    return ((User)sesion.get(User.class, log)).getLogin();
}
}

Y hago referencia en el archivo de primavera al archivo de mapeo:

<property name="mappingResources">
        <list>
            <value>
                User.hbm.xml
            </value>
        </list>
    </property>

Las bibliotecas que uso:

hibernate3.jar
org.springframework.aop-3.1.0.M1.jar
org.springframework.asm-3.1.0.M1.jar
org.springframework.aspects-3.1.0.M1.jar
org.springframework.beans-3.1.0.M1.jar
org.springframework.context-3.1.0.M1.jar
org.springframework.context.support-3.1.0.M1.jar
org.springframework.core-3.1.0.M1.jar
org.springframework.expression-3.1.0.M1.jar
org.springframework.instrument-3.1.0.M1.jar
org.springframework.instrument.tomcat-3.1.0.M1.jar
org.springframework.jdbc-3.1.0.M1.jar
org.springframework.jms-3.1.0.M1.jar
org.springframework.orm-3.1.0.M1.jar
org.springframework.oxm-3.1.0.M1.jar
org.springframework.transaction-3.1.0.M1.jar
hibernate-validator-4.0.2.GA.jar
validation-api-1.0.0.GA.jar

Entonces, no sé por qué es la razón que devuelve el error. necesito ayuda

¡Gracias!

Respuesta 1

¿Un paquete llamado main.java.com.gwt.app.server? Estoy bastante seguro de que el nombre del paquete realmente debería ser com.gwt.app.servery el directorio de origen es ./main/java.

Cambie la declaración del paquete Usera

package com.gwt.app.sever;

y establezca el nuevo nombre del paquete en su User.hbm.xmlarchivo. Buena posibilidad de que ya resuelva el problema.


Este es el verdadero problema:

Caused by: java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException

La FatalBeanExceptionclase no está en el classpath. Debe estar en una de las bibliotecas de springframeworks, por lo que debe (1) verificar qué biblioteca contiene esta clase y (2) verificar si esta biblioteca está en el classpath en tiempo de ejecución.

Respuesta: 2

Estoy usando este código para obtener el tipo de archivo: FileSystemView filesystem = FileSystemView.getFileSystemView (); String sFileType = filesystem.getSystemTypeDescription (archivo)) En Windows, este código ...

Quiero generar números aleatorios, pero no quiero que sean de la matriz de exclusión. Aquí está mi código. public int generateRandom (int start, int end, ArrayList <Integer> exclude) {Random rand = ...

Tengo la siguiente situación: taglib.jar: un taglib JSP personalizado empaquetado como un archivo JAR. El archivo TLD es /META-INF/taglib.tld. webapp.war: una aplicación web con archivos JSP que usan las etiquetas proporcionadas ...

Tengo algunas clases de nombres largos que almaceno en la base de datos usando Hibernate. He notado que hibernate crea la columna dtype (para soporte de herencia) como un carácter variable (31). Desde la clase ...