solomon415
2009-07-27 11:57
浏览 167
已采纳

SSH整合2.0事务配置问题

严重: 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.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy0] to required type [ht.zc.dao.UserDAO] for property 'userDAO'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy0] to required type [ht.zc.dao.UserDAO] for property 'userDAO': no matching editors or conversion strategy found
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1303)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1042)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485)
at java.security.AccessController.doPrivileged(Native Method)

已经4天了,这个问题还没搞懂,就是事务配置的过程中问题,我的项目大致格式:DAO继承HibernateDaoSupport,service和action都是注入想对应的DAO和service,
下面是applicationContext.xml的配置:


<!--改成hinernateSsessFactory,也不行-->

<bean id="userService" class="ht.zc.service.UserService">
    <property name="userDAO" ref="userDao" />
</bean>

class="org.springframework.orm.hibernate3.HibernateTransactionManager">





tx:attributes



/tx:attributes
/tx:advice
aop:config
expression="execution(* ht.zc.dao.*.*(..))" />

/aop:config

[b]问题补充:[/b]
换成sessionFactory也没用,这些事务配置都是没什么变化,2位提供的方案没用,不知道是不是和这个有关系:Failed to convert property value of type [$Proxy0] to required type [ht.zc.dao.UserDAO] for property 'userDAO'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy0] to required type [ht.zc.dao.UserDAO] for property 'userDAO': no matching editors or conversion strategy found

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • java_xh 2009-07-27 15:52
    已采纳

    [code="xml"]
    /tx:advice
    aop:config
    expression="[color=red]execution(* ht.zc.dao.*.*(..))[/color]" />

    /aop:config
    [/code]
    事务一般是配置在service层的,你在dao 可能导致传给dao的是一个proxy对象

    点赞 打赏 评论
  • java_xh 2009-07-27 12:02

    [code="xml"]



    [/code]
    DAO应该引用sessionFactory呢 异常中说Error setting property values

    点赞 打赏 评论
  • zhoujuan520 2009-07-27 12:36

    这个是我的,正常运行中
    [code="xml"]<?xml version="1.0" encoding="UTF-8"?>

    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
    <!-- 配置sessionFactory -->


    classpath:hibernate.cfg.xml


    <!-- 配置事务管理器 -->




    <!-- 配置事务的传播特性 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="a*" propagation="REQUIRED" />
            <tx:method name="b*" propagation="REQUIRED" />
            <tx:method name="c*" propagation="REQUIRED" />
            <tx:method name="d*" propagation="REQUIRED" />
            <tx:method name="e*" propagation="REQUIRED" />
            <tx:method name="f*" propagation="REQUIRED" />
            <tx:method name="g*" propagation="REQUIRED" />
            <tx:method name="h*" propagation="REQUIRED" />
            <tx:method name="i*" propagation="REQUIRED" />
            <tx:method name="j*" propagation="REQUIRED" />
            <tx:method name="k*" propagation="REQUIRED" />
            <tx:method name="l*" propagation="REQUIRED" />
            <tx:method name="m*" propagation="REQUIRED" />
            <tx:method name="n*" propagation="REQUIRED" />
            <tx:method name="o*" propagation="REQUIRED" />
            <tx:method name="p*" propagation="REQUIRED" />
            <tx:method name="q*" propagation="REQUIRED" />
            <tx:method name="r*" propagation="REQUIRED" />
            <tx:method name="s*" propagation="REQUIRED" />
            <tx:method name="t*" propagation="REQUIRED" />
            <tx:method name="u*" propagation="REQUIRED" />
            <tx:method name="v*" propagation="REQUIRED" />
            <tx:method name="w*" propagation="REQUIRED" />
            <tx:method name="x*" propagation="REQUIRED" />
            <tx:method name="y*" propagation="REQUIRED" />
            <tx:method name="z*" propagation="REQUIRED" />
            <tx:method name="*" read-only="true" />
        </tx:attributes>
    </tx:advice>
    
    <!-- 配置哪些类的哪些方法使用事务 -->
    <aop:config>
        <aop:pointcut id="allManagerMethod" expression="execution(* com.press.service.impl.*.*(..))" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod" />
    </aop:config>
    


    [/code]

    点赞 打赏 评论

相关推荐 更多相似问题