问题描述:
环境是Weblogic 12c JDK1.8
原始的报错信息如下图所示:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gap.menuService' defined in class path resource [common-context.xml]: Cannot resolve reference to bean 'pb.common.impl.FinService' while setting bean property 'finService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pb.common.impl.FinService' defined in class path resource [pb-context.xml]: Cannot resolve reference to bean 'pt.pb.common.RefObjService' while setting bean property 'refObjService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pt.pb.common.RefObjService' defined in class path resource [pb-context.xml]: Cannot resolve reference to bean 'payCommonService' while setting bean property 'payCommonService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'payCommonService' defined in class path resource [pb-context.xml]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Unexpected AOP exception; nested exception is java.lang.RuntimeException: java.lang.ClassNotFoundException: org.springframework.aop.framework.AopConfigException
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
最终详细的case by是:
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.springframework.aop.framework.AopConfigException
at net.sf.cglib.asm.$ClassWriter.getCommonSuperClass(Unknown Source)
at net.sf.cglib.asm.$ClassWriter.a(Unknown Source)
at net.sf.cglib.asm.$Frame.a(Unknown Source)
at net.sf.cglib.asm.$Frame.a(Unknown Source)
at net.sf.cglib.asm.$MethodWriter.visitMaxs(Unknown Source)
at net.sf.cglib.core.CodeEmitter.visitMaxs(CodeEmitter.java:842)
at net.sf.cglib.transform.impl.UndeclaredThrowableTransformer$1.visitMaxs(UndeclaredThrowableTransformer.java:56)
at net.sf.cglib.core.CodeEmitter.visitMaxs(CodeEmitter.java:842)
at net.sf.cglib.core.CodeEmitter.end_method(CodeEmitter.java:138)
at net.sf.cglib.proxy.DispatcherGenerator.generate(DispatcherGenerator.java:59)
at net.sf.cglib.proxy.Enhancer.emitMethods(Enhancer.java:1219)
at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:630)
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.generate(AbstractClassGenerator.java:329)
at net.sf.cglib.proxy.Enhancer.generate(Enhancer.java:492)
at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:93)
at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:91)
at net.sf.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
at net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:116)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:291)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:480)
at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:305)
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:200)
... 95 more
解决措施:
在WEB-INF目录下面创建weblogic.xml文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<container-descriptor>
<show-archived-real-path-enabled>true</show-archived-real-path-enabled>
<prefer-web-inf-classes>false</prefer-web-inf-classes>
<prefer-application-packages>
<package-name>net.sf.cglib.*</package-name>
</prefer-application-packages>
</container-descriptor>
</weblogic-web-app>
重新打包部署。