Java Tomcat 7的Spring配置类处理器错误
我正试图在EclipseLuna中设置Tomcat7.0.57(JDK1.7.0_71)来运行一个web应用程序。我已将webapp添加到服务器,并尝试发布服务器,但出现以下错误:Java Tomcat 7的Spring配置类处理器错误,java,eclipse,tomcat,spring-annotations,cglib,Java,Eclipse,Tomcat,Spring Annotations,Cglib,我正试图在EclipseLuna中设置Tomcat7.0.57(JDK1.7.0_71)来运行一个web应用程序。我已将webapp添加到服务器,并尝试发布服务器,但出现以下错误: 0 [localhost-startStop-1] ERROR org.springframework.web.context.ContextLoader - Context initialization failed java.lang.IllegalStateException: Cannot
0 [localhost-startStop-1] ERROR org.springframework.web.context.ContextLoader - Context initialization failed
java.lang.IllegalStateException: Cannot load configuration class: com.zzz.BeanConfigForDev
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:371)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:246)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:687)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:626)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4994)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5492)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1859)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: class com.zzz.BeanConfigForDev$$EnhancerByCGLIB$$216e920d is not an enhanced class
at net.sf.cglib.proxy.Enhancer.setCallbacksHelper(Enhancer.java:621)
at net.sf.cglib.proxy.Enhancer.registerStaticCallbacks(Enhancer.java:594)
at org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:151)
at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:108)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:361)
代码中使用的注释没有问题,因为使用类似jar集的相同设置正在其他系统中工作。根据我的初步分析,我怀疑问题在于所使用的cglib和asm版本。已经尝试过这些JAR的最新版本,也尝试过cglib_nodep,但遇到了同样的问题。这是我的类路径配置
在调试时,我看到cglib.Enhancer失败,因为在配置代理上操作时出现NoSuchMethodException。在这个特定的场景中,您知道导致NoSuchMethodException的可能原因吗 我不知道是什么导致了这个问题,但我通过切换到Tomcat 7.0.29解决了这个问题。你是否将@Configuration类导入到另一个类?@MarianP是的,我在我的web项目中定义的java配置中进行了导入-@import({BeanConfigForDev.class})