您的位置:首页 > 运维架构

Invalid property 'transactionManager' of bean class的解决办法

2014-06-19 17:22 936 查看
<?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="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory" ref="sessionFactory"></property>

</bean>

<bean id="txProxyTemplate" abstract="true"

class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

<property name="transactionManager" ref="transactionManager"></property>

<property name="transactionAttributes">

<props>

<prop key="create*">PROPAGATION_REQUIRED</prop>

<prop key="update*">PROPAGATION_REQUIRED</prop>

<prop key="delete*">PROPAGATION_REQUIRED</prop>

<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>

</props>

</property>

</bean>

<bean id="userDAO" class="dgut.ke.dao.impl.UserDAO">

<property name="sessionFactory" ref="sessionFactory"></property>

</bean>

<bean id="userService" parent="txProxyTemplate" class="dgut.ke.service.impl.UserService">

<property name="userDAO" ref="userDAO" />

</bean>

... ....

启动Tomecat时出了错.之前没有添加事务处理时.上面的代码是可以正常运行的.添加事务之后却出现以下错误

ERROR - 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 'userService' defined in ServletContext resource [/WEB-INF/applicationContext-hibernate.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException:
Invalid property 'transactionManager' of bean class [dgut.ke.service.impl.UserService]: Bean property 'transactionManager' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

Caused by:

org.springframework.beans.NotWritablePropertyException: Invalid property 'transactionManager' of bean class [dgut.ke.service.impl.UserService]: Bean property 'transactionManager' is not writable or has an invalid setter method. Does the parameter type of the
setter match the return type of the getter?

解决办法



<bean id="userService" parent="txProxyTemplate" class="dgut.ke.service.impl.UserService">

<property name="userDAO" ref="userDAO" />

</bean>

换成以下代码就可以正常运行了

<bean id="userService" parent="txProxyTemplate">

<property name="target">

<bean class="dgut.ke.service.impl.UserService">

<property name="userDAO" ref="userDAO"></property>

</bean>

</property>

</bean>

文章出自:http://zhengweisincere.blog.163.com/blog/static/49844649201171012515667
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐