繁体   English   中英

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

[英]Why Intellij IDEA can't recognize defaultEncoding field of ResourceBundleMessageSource class?

我在 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

根据此文档ResourceBundleMessageSource具有从AbstractResourceBasedMessageSource类继承的defaultEncoding属性。 上面的代码在另一个 Spring MVC 项目中工作正常。

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

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

附录:当我用 IDEA 反编译ResourceBundleMessageSource类时,它显示该类扩展了AbstractMessageSource ,而不是像文档所说的AbstractResourceBasedMessageSource

ReloadableResourceBundleMessageSource替换ResourceBundleMessageSource不会出错。

我终于解决了这个问题。 我的项目中有一个 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 依赖项,现在它工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM