我在搭建spring+hibernate+acegi项目时出现了一个错误,在网上找了很久出没找到解决办法,希望哪位高人能帮帮我。
我用的是在myeclipse 8 上做的开发 配置如下
----------------- web.xml -----------------
...................
<filter>
<filter-name>Acegi Filter Chain Proxy</filter-name>
<filter-class>
org.acegisecurity.util.FilterToBeanProxy
</filter-class>
<init-param>
<param-name>targetClass</param-name>
<param-value>
org.acegisecurity.util.FilterChainProxy
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Acegi Filter Chain Proxy</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>org.acegisecurity.ui.session.HttpSessionEventPublisher</listener-class>
</listener>
..................----------------- spring 部分配置如下 ---------------------------
<!--注解配置-->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="txManager" />
<aop:aspectj-autoproxy />
<context:annotation-config/> <bean id="acegiService"
class="org.code.acegi.AcegiService" /><!--acegi部分配置-->
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="acegiService"/>
</bean>
--------------------------AcegiService 该类实现了 UserDetailsService 接口 ------------------调试请况如下:
1、去掉 acegi后 程序启动不报错; 去掉 <tx:annotation-driven transaction-manager="txManager" /> 配置,程序启动也不报错
2、同时配置 acegi 和 <tx:annotation-driven transaction-manager="txManager" />配置后-------------------------------------------程序启动报错如下-------------------------------------
严重: 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 'org.springframework.transaction.interceptor.TransactionInterceptor#0': Cannot resolve reference to bean 'txManager' while setting bean property 'transactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'txManager' defined in URL [file:/D:/workspace/MyEclipse8/.metadata/.me_tcat/webapps/wang.code/WEB-INF/classes/common.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
我用的是在myeclipse 8 上做的开发 配置如下
----------------- web.xml -----------------
...................
<filter>
<filter-name>Acegi Filter Chain Proxy</filter-name>
<filter-class>
org.acegisecurity.util.FilterToBeanProxy
</filter-class>
<init-param>
<param-name>targetClass</param-name>
<param-value>
org.acegisecurity.util.FilterChainProxy
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Acegi Filter Chain Proxy</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>org.acegisecurity.ui.session.HttpSessionEventPublisher</listener-class>
</listener>
..................----------------- spring 部分配置如下 ---------------------------
<!--注解配置-->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="txManager" />
<aop:aspectj-autoproxy />
<context:annotation-config/> <bean id="acegiService"
class="org.code.acegi.AcegiService" /><!--acegi部分配置-->
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="acegiService"/>
</bean>
--------------------------AcegiService 该类实现了 UserDetailsService 接口 ------------------调试请况如下:
1、去掉 acegi后 程序启动不报错; 去掉 <tx:annotation-driven transaction-manager="txManager" /> 配置,程序启动也不报错
2、同时配置 acegi 和 <tx:annotation-driven transaction-manager="txManager" />配置后-------------------------------------------程序启动报错如下-------------------------------------
严重: 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 'org.springframework.transaction.interceptor.TransactionInterceptor#0': Cannot resolve reference to bean 'txManager' while setting bean property 'transactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'txManager' defined in URL [file:/D:/workspace/MyEclipse8/.metadata/.me_tcat/webapps/wang.code/WEB-INF/classes/common.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货