错误信息:
19:46:57,771 INFO ClassPathBeanDefinitionScanner:222 - JSR-250 'javax.annotation.ManagedBean' found and supported for component scanning
19:46:58,203 ERROR ContextLoader:307 - Context initialization failed
java.lang.IllegalArgumentException
at org.springframework.asm.ClassReader.(Unknown Source)
at org.springframework.asm.ClassReader.(Unknown Source)
at org.springframework.asm.ClassReader.(Unknown Source)
at org.springframework.core.type.classreading.SimpleMetadataReader.(SimpleMetadataReader.java:52)
at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80)
at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:101)
at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:76)
at org.springframework.context.annotation.ConfigurationClassParser.getImports(ConfigurationClassParser.java:298)
at org.springframework.context.annotation.ConfigurationClassParser.getImports(ConfigurationClassParser.java:300)
at org.springframework.context.annotation.ConfigurationClassParser.getImports(ConfigurationClassParser.java:300)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:230)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:153)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:130)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:285)
问题根源
经过排查,这个问题就是发生在jdk环境的问题上!
解决方案
jdk1.8只能支持spring4.0,而spring3只能使用1.7及以下jdk进行配置。
所以降低jdk的版本即可解决问题。
Windows –> Preferences –> Java –> Install JREs,安装jdk1.6版本
与此同时,我们需要改变JDK编译器的java版本为jdk1.7,如下图所示:
再次启动tomcat,OK可以正常启动!
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:bos19' did not find a matching property.
有时候Tomcat启动会报这个错:
问题原因
这是因为我们在eclipse下,通过tomcat部署web工程时,tomcat的配置文件server.xml中会自动生成一个关于该web工程的配置信息,类似于下面的东西:
xml代码:
而默认情况下,server.xml的 Context元素不支持名称为source的属性,所以会发出警告。
解决办法
关闭tomcat,双击eclipse下tomcat服务器,在出来的 Tomcat server at localhost 页面中找到 Server Options 选项,选中其中的选项 ”Publish modual contexts to separat XML files“ ,Ctrl+s,重新启动tomcat。没有警告了!