У меня есть эта ошибка каждый раз, когда я меняю свой файл xml
. Вот что я получил:Hibernate sessionFactory или Hibernate Template missing
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'managerExpedBitacora' defined in class path resource [config/spring/manager.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
Полный стек:
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4728)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5166)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
at org.springframework.orm.hibernate4.support.HibernateDaoSupport.checkDaoConfig(HibernateDaoSupport.java:117)
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1625)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1562)
... 21 more
Вот мои manager.xml
, только refered линии:
<bean id="managerExpedBitacora" class="es.myCompany.lq.manager.impl.ManagerExpedBitacoraImpl">
<property name="daoExpedBitacora" ref="daoExpedBitacora"/>
</bean>
...
<bean id="managerExpedienteLS" class="es.myCompany.lq.manager.impl.ManagerExpedienteLSImpl">
....
<property name="managerExpedBitacora" ref="managerExpedBitacora" />
....
</bean>
А вот мои daos.xml
, только несколько строк:
<bean id="daoExpedBitacora" class="es.myCompany.lq.dao.impl.DaoExpedBitacoraHbmImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
Как вы можете видеть, я ввел sessionFactory.
И, applicationContext.xml
, почта часть:
<import resource="classpath:config/spring/properties.xml"/>
<import resource="classpath:config/spring/utils.xml"/>
<import resource="classpath:config/spring/bbdd.xml"/>
<import resource="classpath:config/spring/daos.xml"/>
<import resource="classpath:config/spring/manager.xml"/>
<import resource="classpath:config/spring/actions.xml"/>
И часть моей DaoExpedBitacoraHbmImpl.java
:
public class DaoExpedBitacoraHbmImpl extends HibernateDaoSupport implements
DaoExpedBitacora {
...(methods)
}
И HibernateDaoSupport.java
, только часть его.
public class HibernateDaoSupport extends org.springframework.orm.hibernate4.support.HibernateDaoSupport{
....
}
Так, что здесь не так?
У вас есть 'setSessionFactory', если так убедитесь, что он вызывает супер сеттер. Также, судя по фрагменту трассировки стека (пожалуйста, добавьте полную трассировку стека), ваша служба также расширяет класс 'HibernateDaoSupport' –
. Можете ли вы объяснить, что вы написали в методе DaoExpedBitacoraHbmImpl. – Darshan
Я вижу, что вам требуется sessionFactory в daoExpedBitacora, но где вы на самом деле его предоставляете? –