我目前正在尝试启动使用Maven构建的应用程序的服务器端;干净安装是成功的,但然后tomcat7:运行失败,出现以下Spring错误消息
04:21:19,059 [localhost-startStop-1] ERROR org.springframework.web.context.ContextLoader -
Context initialization failed org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'properties' defined in class path resource [context.xml]:
Initialization of bean failed; nested exception is java.lang.NoSuchMethodError:
org.springframework.core.convert.Property.<init>(Ljava/lang/Class;Ljava/lang/reflect/Method;
Ljava/lang/reflect/Method;Ljava/lang/String;)V
context.xml中的相关bean定义如下
<bean id="properties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:server.properties"/>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>
研究表明,这类错误通常与类路径上的错误JAR版本有关。在这个特定的应用程序中,Spring版本3.2.4.RELEASE依赖项是在Maven pom.xml中定义的,并且检查了相关的org.springframework.core.convert.Property类的API,它似乎是构造函数Property(Class objectType,Method readMethod) ,Method writeMethod,String name)实际上在此版本中可用。任何想法都赞赏
答案 0 :(得分:1)
尝试使用-verbose
选项运行java。
它显示了已经从中加载了类。
看起来Tomcat的bootstrap
类加载器中存在一个spring jar - 旧版本的Spring。