【发布时间】:2014-07-21 07:22:56
【问题描述】:
我目前正在尝试启动使用 Maven 构建的应用程序的服务器端;全新安装成功,但随后 tomcat7:run 失败并显示以下 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) 在这个版本中实际可用。任何想法表示赞赏
【问题讨论】:
-
能否提供完整的pom文件?
-
有一个主 pom.xml (10K),其中包含四个模块 pom.xmls,其中一个是提到的服务器模块 (8K)。您希望看到其中的哪些部分?
-
对。然后尝试构建 .war 并查看 WEB-INF/lib 以查看 Maven 解析的 jar。
-
...\server\target\server-1.0-SNAPSHOT.war\WEB-INF\lib 包含 spring-*-3.2.4.RELEASE.jar 文件
-
是的,我不是 Spring 专家,但如果我见过的话,这看起来像是版本不匹配
标签: java spring maven properties classpath