spring aop 方面的问题

hzl37du3 2009-09-01 04:14:35
报错:
[2009-09-01 16:03:29,281]-ERROR (ContextLoader.java:205)|Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spot.spotManager' defined in ServletContext resource [/WEB-INF/config_ext/applicationContext-spot-service.xml]: Initialization of bean failed; nested exception is org.aopalliance.aop.AspectException: null
java.lang.IllegalArgumentException: Cannot subclass final class class $Proxy1
at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:442)
at net.sf.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:215)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:373)
at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:281)
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:199)
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:156)
at org.springframework.aop.framework.ProxyFactoryBean.getProxy(ProxyFactoryBean.java:295)
at org.springframework.aop.framework.ProxyFactoryBean.getSingletonInstance(ProxyFactoryBean.java:256)
at org.springframework.aop.framework.ProxyFactoryBean.setBeanFactory(ProxyFactoryBean.java:220)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:358)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:226)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:269)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:320)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:134)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3729)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4187)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)

我是在applicationContext-service.xml加了


<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<value>*Impl</value>
</property>
<property name="interceptorNames">
<list>
<value>TransactionInterceptor</value>
</list>
</property>
</bean>

就报错
web.xml配置是

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:META-INF/danlong/config/applicationContext-*.xml,
/WEB-INF/config_ext/applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...全文
252 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DryKillLogic 2009-09-02
  • 打赏
  • 举报
回复
spot.spotManager这个bean有问题
iamBosss 2009-09-02
  • 打赏
  • 举报
回复
<property name="beanNames">
<value>*Impl</value>
</property>


应该是这里的问题
xiaowei3856 2009-09-02
  • 打赏
  • 举报
回复
<bean id="spot.spotManagerImpl"
class="com.shihua.danlong.spot.service.impl.SpotManangerImpl"
parent="common.baseManager">
</bean>

把这个放上面试试,因为下面用到<ref bean="spot.spotManagerImpl"/>
<!--现货交易中心 -->
<bean id="spot.spotManager" parent="txProxyTemplate">
<property name="proxyInterfaces">
<list>
<value>com.shihua.danlong.spot.service.SpotManager</value>
</list>
</property>
<property name="target">
<ref bean="spot.spotManagerImpl"/>
</property>
</bean>
hzl37du3 2009-09-02
  • 打赏
  • 举报
回复
我检查了,没有继承final类,不知道为什么
lijing0511 2009-09-01
  • 打赏
  • 举报
回复
Cannot subclass final class class $Proxy1

不是写的很清楚么, 继承了一个final类
hzl37du3 2009-09-01
  • 打赏
  • 举报
回复
applicationContext-spot-service.xml

<beans>
<!--现货交易中心 -->
<bean id="spot.spotManager" parent="txProxyTemplate">
<property name="proxyInterfaces">
<list>
<value>com.shihua.danlong.spot.service.SpotManager</value>
</list>
</property>
<property name="target">
<ref bean="spot.spotManagerImpl"/>
</property>
</bean>
<bean id="spot.spotManagerImpl"
class="com.shihua.danlong.spot.service.impl.SpotManangerImpl"
parent="common.baseManager">
</bean>


<!--现货交易中心 -->
</beans>

谢谢!
inthirties 2009-09-01
  • 打赏
  • 举报
回复
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spot.spotManager' defined in ServletContext resource [/WEB-INF/config_ext/applicationContext-spot-service.xml

错误的在这里
applicationContext-spot-service.xml

bean的name是spot.spotManager

检查一下这个spot-service.xml的文件
Godkill 2009-09-01
  • 打赏
  • 举报
回复
贴下你的applicationContext-spot-service.xml

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧