【发布时间】:2016-05-21 05:39:55
【问题描述】:
我不明白这里发生了什么。这是我得到的例外:
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [file:/C:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/demoBancoWeb/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.component.PojoComponentTuplizer]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
.
.
.
Caused by: java.lang.ClassNotFoundException: co.edu.icesi.demo.modelo.ConsignacionesId
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.hibernate.internal.util.ReflectHelper.classForName(ReflectHelper.java:193)
at org.hibernate.mapping.Component.getComponentClass(Component.java:138)
... 42 more
堆栈跟踪的第一块是 Hibernate 异常,第二块跟踪是与我的类的关系。
这个类,ConsignacionesId 是 Hibernate 自动生成的多属性 ID。
这是我的休眠 cfg.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.password">admin</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/banco</property>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.search.autoregister_listeners">false</property>
<property name="show_sql">true</property>
<mapping resource="co/edu/icesi/demo/modelo/Clientes.hbm.xml"/>
<mapping resource="co/edu/icesi/demo/modelo/Cuentas.hbm.xml"/>
<mapping resource="co/edu/icesi/demo/modelo/TiposUsuarios.hbm.xml"/>
<mapping resource="co/edu/icesi/demo/modelo/TiposDocumentos.hbm.xml"/>
<mapping resource="co/edu/icesi/demo/modelo/Consignaciones.hbm.xml"/>
<mapping resource="co/edu/icesi/demo/modelo/Usuarios.hbm.xml"/>
<mapping resource="co/edu/icesi/demo/modelo/Retiros.hbm.xml"/>
<mapping resource="co/edu/icesi/demo/modelo/Consultas.hbm.xml"/>
</session-factory>
</hibernate-configuration>
最后,这是我由 Hibernate 生成的类:
如您所见,ConsignacionesId 就在那里。 任何帮助表示赞赏。
【问题讨论】:
-
你的所有类都编译正确了吗?
-
是的,他们做到了。我找到了一个解决方案,但它似乎不是很持久。我将“modelo”类文件夹添加到构建路径中并且它起作用了。我完全不知道为什么会这样。
-
检查您是否发布了您的全部异常堆栈?
-
不,我发布了初始异常,然后发布了包含与我的类相关的问题的堆栈跟踪。我跳过了 Hibernate 的内部结构。