Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jdbcTemplate' defined in class path resource [applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'hibernateProperties' of bean class [org.springframework.jdbc.core.JdbcTemplate]: Bean property 'hibernateProperties' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1279)
  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)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
  at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
  at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
  at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
  at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
  at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
  at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
  at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
  at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
  at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
  at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
  at com.edu.aynu.zl.test.Test.main(Test.java:26)
 Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'hibernateProperties' of bean class [org.springframework.jdbc.core.JdbcTemplate]: Bean property 'hibernateProperties' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
  at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:801)
  at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:651)
  at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78)
  at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:59)
  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1276)
  ... 16 more
 我的Spring配置文件
 
<?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/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  
  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
   <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
   <property name="url" value="jdbc:mysql://localhost:3306/test"/>
   <property name="username" value="root"/>
   <property name="password" value="111"/>
  </bean>
  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
   <property name="dataSource" ref="dataSource"/>
   <property name="hibernateProperties">
    <props>
     <!-- 数据库连接方言 -->
     <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
     <!-- 在控制台输出SQL语句 -->
     <prop key="hibernate.show_sql">true</prop>
     <!-- 格式化控制台输出的SQL语句 -->
     <prop key="hibernate.format_sql">true</prop>
    </props>
   </property>
   <property name="mappingResources">
    <list>
     <!-- hibernate映射文件 -->
     <value>com.edu.aynu.zl.entity/Employ.hbm.xml</value>
    </list>
   </property>
  </bean>
      <!-- 配置持久化 -->
      <bean id="employDao" class="com.edu.aynu.zl.entity.EmployDao">
        <property name="sessionFactory" ref="sessionFactory">
          <!-- 注入SessionFactory引用-->
        <!--<ref local="sessionFactory"/>-->
        </property>
      </bean>
SpringHibernateSSHBean框架

解决方案 »

  1.   

    没看到 “Error setting property values;”吗,注入的时候出错了
      

  2.   

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">这类里根本没用到hibernateProperties 不错在怪呢·
      

  3.   

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"></bean>
    你的application.xml文件没有sessionFactory
    <property name="sessionFactory" ref="sessionFactory">是错的
      

  4.   

    不知道怎么在ApplicationContext.xml如何添加SessionFactory了。。
      

  5.   

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">这个改成
    <bean id="sessionFactory" calss="org.hibernate.orm.hibernate3.LocationSessionFactory">
      <property name="dataSource" ref="dataSource'/>
    </bean>
      

  6.   

    org.springFrameWork.orm.hibernate3.LocationSessionFactory
      

  7.   

    应该是你注入bean里面的名字写错了吧?好好检查一下