日期:2014-05-17  浏览次数:20708 次

Element type "tx:advice" must be declared.
hibernate+spring的事务管理问题
运行程序时报出异常→
 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 52 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException: Element type "tx:advice" must be declared.

我的applicationContext.xml 配置文件如下(报错的52行就是下面的第一行):
<tx:advice id="txAdvice" transaction-manager="transactionManager">
   <tx:attributes>
    <tx:method name="insert*" propagation="REQUIRED" />
    <tx:method name="delete*" propagation="REQUIRED" />
    <tx:method name="update*" propagation="REQUIRED" />
    <tx:method name="*" read-only="true" />
   </tx:attributes>
  </tx:advice>
 
  <aop:config>
   <aop:pointcut id="allManagerMethod" expression="execution(* dao.impl.*.*(..))" />
   <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" />
  </aop:config>

请高手帮我看下是什么地方出了问题呀~~

------解决方案--------------------
transactionManager这个bean设置了吗?


<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
------解决方案--------------------
你把你的beans 里面的所有命名空间发来看看 你是不是没有tx对应的命名空间啊
------解决方案--------------------
你可以局部的排除错误,先把<tx:advice/>里的代码去掉,一点点的去查找原因
------解决方案--------------------
配置下
<!-- aop代理设置-->    
<aop:config proxy-target-class="true">       
</aop:config>  
我也是猜的。你可以试下