三天以来,我一直在尝试运行我的 Spring-Hibernate 程序。由于 hibernate2 和 hibernate3 之间的版本差异,我很难找到所涉及的依赖项。
最后我能够运行具有以下依赖项的程序
- cglib-nodep-2.1_3.jar
- commons-collections.jar
- commons-dbcp.jar
- 公共池.jar
- commons-logging.jar
- dom4j-1.4.jar
- ehcache-1.6.0-beta1.jar
- hibernate-3.1.3.jar
- hsqldb.jar
- jta.jar log4j-1.2.9.jar
- mysql-connector-java-5.0.8-bin.jar
- org.springframework.orm-3.1.0.M1.jar
- org.springframework.transaction-3.1.0.M1.jar
- spring-2.5.6.jar
- spring-beans-2.0.4.jar
现在,经过两天的努力,当我能够管理上述依赖项时,我尝试构建类似的程序,但它抛出以下错误。我尝试在线解决方案,但我发现解决方案没有正确的 spring 和 hibernate 版本。 .谁能告诉我异常的正确原因以及Spring和hibernate的正确版本
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myRecordDAO' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'hibernateTemplate' while setting bean property 'hibernateTemplate'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateTemplate' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.reflect.MalformedParameterizedTypeException
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
我还添加了我的应用程序 context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/subhash"/>
<property name="username" value="root"/>
<property name="password" value=""></property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource"><ref local="dataSource"/></property>
<property name="mappingResources">
<list>
<value>MyRecord.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>
<bean id="myRecordDAO" class="com.shoesobjects.MyRecordDAOHibernateWithSpring">
<property name="hibernateTemplate"><ref local="hibernateTemplate"/></property>
</bean>
</beans>
a)
Note
从 Spring 3.0 开始,Spring 需要Hibernate 3.2 或更高版本.
Source:
- Spring 3.1.x 参考 >
休眠 http://static.springsource.org/spring/docs/3.1.0.M1/spring-framework-reference/html/orm.html#orm-hibernate
b)
- org.springframework.orm-3.1.0.M1.jar
- org.springframework.transaction-3.1.0.M1.jar
- spring-2.5.6.jar
- 春豆-2.0.4.jar
您真的认为将当前预发布版本 (3.1.x) 与旧版本(2.0.4 于 2007 年发布)混合是一个好主意吗?
As 马特 说 https://stackoverflow.com/questions/5326051/correct-version-of-spring-and-hibernate-and-required-dependencies-exception-due/5326154#5326154:使用像 Maven 这样的依赖管理系统,你面对的是 jar hell。这是一篇关于从 Maven 引用 Spring 3.x 工件的文章:
获取 Spring 3 工件
梅文 http://blog.springsource.com/2009/12/02/obtaining-spring-3-artifacts-with-maven/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)