为什么Intellij IDEA无法识别ResourceBundleMessageSource类的defaultEncoding字段?

问题描述 投票:2回答:1

我有一个在Spring MVC文件的xml文件中定义的ResourceBundleMessageSource bean。它的定义如下:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
  <property name="basename" value="messages" />
  <property name="defaultEncoding" value="UTF-8" />
</bean>

然而,Intellij标记defaultEncoding红色和弹出Can not resolve property

根据this documentationResourceBundleMessageSource拥有继承自defaultEncoding类的AbstractResourceBasedMessageSource财产。以上代码在另一个Spring MVC项目中运行良好。

我的Spring依赖版本是5.0.4,IDEA版本是2017.2.1。

这种奇怪行为的原因是什么?是bug吗?

附录:当我用IDEA反编译ResourceBundleMessageSource类时,它表明这个类扩展了AbstractMessageSource,而不是AbstractResourceBasedMessageSource,就像文档说的那样。

ResourceBundleMessageSource替换ReloadableResourceBundleMessageSource没有错误。

java spring intellij-idea
1个回答
1
投票

我终于解决了这个问题。我的项目中有一个jersey-spring依赖项:

<dependency>
  <groupId>com.sun.jersey.contribs</groupId>
  <artifactId>jersey-spring</artifactId>
  <version>1.19.3</version>
</dependency>

这取决于旧版本的Spring - 3.0.0.RC1。我还明确地在pom.xml文件中包含Spring 5.0.4.RELEASE依赖项。这导致了不同版本之间的冲突,Maven正在解决冲突,转而支持旧版本3.0.0.RC1。我决定删除jersey-spring依赖,现在它工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.