错误产生的信息如下:
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: file [E:\develop_tools\apache-tomcat-8.0.18\webapps\SpringMVCUploadFileDemo\WEB-INF\classes\com\evan\action\UploadFileAction.class]; nested exception is java.lang.IllegalArgumentException
at org.springframework.core.type.classreading.SimpleMetadataReader.(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:257)
… 39 more
Caused by: java.lang.IllegalArgumentException
at org.springframework.asm.ClassReader.(Unknown Source)
产生的原因是:我用的JDK8.0版本,而spring使用的是3.2。
解决办法是:将项目的编译版本降到1.7即可。
具体如下:
在项目上右键–properties–java Compile–compiler compliance level 如图所示:
设置好编译版本后,项目上会有红色的小叉,不过这样不会影响项目的运行。
=================================
原版英文解释如下:
you need Spring 4 if you want compile code to Java 8 (–target 1.8), but you can still run apps on Java 8 compiled to Java 7 if you run on Spring 3.2.X.