2016-04-24 75 views
2

我正在获取以下错误** ASM ClassReader无法解析类文件 - 可能是由于使用JDK 1.8和Apache 7不支持新的Java类文件版本尚未**ASM ClassReader无法解析类文件 - 可能是由于不支持新的Java类文件版本 - 我使用的是Apache 7和JDK 1.8

AM和AM使用Spring 3.2.9 versionto运行我的web项目

[jar:file:/apps/tomcat/instances/tomcat01/work/Catalina/localhost/ConcurArchival_Web/WEB-INF/lib/ecl-test-1.0.0.jar!/com/tgt/ecl/framework/test/MVCTest.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: URL 

帮助退伍军人从赞赏

堆栈跟踪添加如下:

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [jar:file:/apps/tomcat/instances/tomcat01/work/Catalina/localhost/ConcurArchival_Web/WEB-INF/lib/tgt-ecl-test-1.0.0.jar!/com/tgt/ecl/framework/test/MVCTest.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: URL [jar:file:/apps/tomcat/instances/tomcat01/work/Catalina/localhost/ConcurArchival_Web/WEB-INF/lib/tgt-ecl-test-1.0.0.jar!/com/tgt/ecl/framework/test/MVCTest.class]; nested exception is java.lang.IllegalArgumentException 
     at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:290) 
     at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242) 
     at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84) 
     at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73) 
     at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438) 
     at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428) 
     at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:195) 
     at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139) 
     at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108) 
     at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) 
     at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) 
     at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 
     at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 
     at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 
     at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) 
     at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94) 
     at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) 
     at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451) 
     at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410) 
     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) 
     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) 
     at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) 
     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:633) 
     at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:663) 
     at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1642) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
     at java.util.concurrent.FutureTask.run(Unknown Source) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
     at java.lang.Thread.run(Unknown Source) 
Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: URL [jar:file:/apps/tomcat/instances/tomcat01/work/Catalina/localhost/ConcurArchival_Web/WEB-INF/lib/tgt-ecl-test-1.0.0.jar!/com/tgt/ecl/framework/test/MVCTest.class]; nested exception is java.lang.IllegalArgumentException 
     at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:56) 
     at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80) 
     at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:102) 
     at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:266) 
     ... 36 more 
Caused by: java.lang.IllegalArgumentException 
     at org.springframework.asm.ClassReader.<init>(Unknown Source) 
     at org.springframework.asm.ClassReader.<init>(Unknown Source) 
     at org.springframework.asm.ClassReader.<init>(Unknown Source) 
     at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:53) 
     ... 39 more 

Apr 22, 2016 1:52:31 AM org.apache.catalina.core.ApplicationContext log 
INFO: Closing Spring root WebApplicationContext 
Apr 22, 2016 1:52:31 AM org.apache.catalina.core.StandardContext listenerStop 
SEVERE: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener 
java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext 
     at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:171) 
     at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1090) 
     at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1064) 
     at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1010) 
     at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:586) 
     at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:143) 
     at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4980) 
     at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5626) 
     at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160) 
     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:633) 
     at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:663) 
     at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1642) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
     at java.util.concurrent.FutureTask.run(Unknown Source) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
     at java.lang.Thread.run(Unknown Source) 
+0

只需再添加一个...我在Apache服务器启动期间得到上述异常 – Sunil

+0

您提供的信息非常少,甚至没有提供堆栈跟踪。不管怎样,我都会推测*“Apache 7”是指Tomcat 7,而它使用的Java版本是8以前。 – chrylis

+0

@chrylis:是的,它的Tomcat 7 ...我用Java版本8编译了 – Sunil

回答

2

您正在使用的Spring版本取决于不支持使用Java 8编译器编译的代码的ASM版本。您需要升级到Spring 4.0.3或更高版本。

https://spring.io/blog/2014/03/27/spring-framework-4-0-3-released-with-java-8-support-now-production-ready

可能逃脱做ASM库点的更新,但是这是可引进Spring和ASM之间的兼容性问题。升级Spring是一个更好的主意。您有机会使用Spring 4.x中的新功能,并且迁移到5.x及更高版本更容易。

+0

谢谢斯蒂芬,我会检查它并让这个小组知道。 – Sunil

+0

将根据什么与Spring 4.x版,JAVA 8和Tomcat 7 – Sunil

+0

\t \t \t ASM \t \t \t ASM \t \t \t 3.3.1 \t \t Sunil

相关问题