【问题标题】:Cannot convert [...ReloadableResourceBundleMessageSource] to required type [...ResourceBundleMessageSource]无法将 [...ReloadableResourceBundleMessageSource] 转换为所需类型 [...ResourceBundleMessageSource]
【发布时间】:2019-06-10 19:25:36
【问题描述】:

所以,我尝试通过内化来制作我的项目。我做

  • 消息
  • Messages_zh
  • Messages_fr

如果我将它们放入我的 /resources/ 中,那么在我的上下文中使用 ResourceBundleMessageSource 一切正常。但我想更改文件夹,例如更改为 C:\Apache\servicemix\etc\conf\messages。

当我做出这样的事情时

Servicemix 写道

ResourceBundle [file:C:/Apache/servicemix/etc/conf/messages/Messages] not found for MessageSource: Can't find bundle for base name file:C:/Apache/servicemix/etc/confi/messages/Messages, locale en

在 Servicemix 的调试模式下,我尝试从我的属性中获取正确的消息,并且当我执行类似的操作时它可以工作

    ReloadableResourceBundleMessageSource messageSource=new ReloadableResourceBundleMessageSource();
    messageSource.setBasename("file:C:/Apache/servicemix/etc/configurator/messages/Messages");
    messageSource.getMessage("next",null,new Locale("en"));

我得到了我需要的东西。我想在我的上下文中使用它。但 导致错误:

Caused by: java.lang.IllegalStateException: Cannot convert value of type [org.springframework.context.support.ReloadableResourceBundleMessageSource] to required type [org.springframework.context.support.ResourceBundleMessageSource] for property 'messageSource': no matching editors or conversion strategy found
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:267)
at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:449)
... 140 more

为什么它不起作用? 我使用清晰的 Spring,而不是 SpringBoot

【问题讨论】:

  • 您正在针对 ResourceBundleMessageSource 作为类型(某处的字段)而不是 MessageSource(您应该使用的接口而不是具体类型)进行编程。
  • @M.Deinum,谢谢。你是对的。在我的 1 个上下文中,我有 1 个用于 MessageSource 的 ResourceBundleMessageSource。如何选择您的评论作为答案? ;-)

标签: java spring


【解决方案1】:

您收到的错误消息是由于您在代码库中的某处使用ResourceBundleMessageSource 作为类型。可能在具有该类型字段的类中。

您应该使用公共接口MessageSource 而不是使用ResourceBundleMessageSource 的具体类型。这样,您选择使用哪种实现都无关紧要。

【讨论】:

  • 感谢您的帮助)
猜你喜欢
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 2016-07-03
  • 2017-05-20
  • 2020-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多