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
has defaultEncoding
プロパティはAbstractResourceBasedMessageSource
クラスから継承されます。上記のコードは、別のSpring MVCプロジェクトで正常に機能します。
私のSpring依存バージョンは5.0.4で、IDEAバージョンは2017.2.1です。
そのような奇妙な行動の理由は何ですか?バグですか?
付録:ResourceBundleMessageSource
IDEAを使用してクラスを逆コンパイルするとAbstractMessageSource
、AbstractResourceBasedMessageSource
ドキュメントが言うように、このクラスが拡張することが示されます。
と置き換えResourceBundleMessageSource
てReloadableResourceBundleMessageSource
もエラーは発生しません。
ようやく問題を解決しました。私のプロジェクトにはジャージースプリングの依存関係がありました。
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-spring</artifactId>
<version>1.19.3</version>
</dependency>
正確には、以前のバージョンのSpring-3.0.0.RC1に依存していました。また、Spring 5.0.4.RELEASEの依存関係をpom.xmlファイルに明示的に含めていました。これは異なるバージョン間の競合を引き起こしており、Mavenは古いバージョン3.0.0.RC1を優先して競合を解決していました。私はjersey-spring依存関係を削除することに決めました、そして今それはうまく働きます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加