Я попытался использовать Mkyong's guide для доступа к внешнему файлу свойств без каких-либо успехов.Spring ReloadableResourceBundleMessageSource bean не может найти внешние свойства
Это мое определение компонента в файле веб-OSGi-context.xml, расположенной в WEB-INF:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:bundles/resource</value>
<value>classpath:bundles/override</value>
<value>file:c:/test/messages</value>
</list>
</property>
<property name="cacheSeconds" value="10"/>
</bean>
Доступ боб:
@SpringBean
private ReloadableResourceBundleMessageSource messageSource;
Попытка извлечь сообщение, как это:
String name = messageSource.getMessage("customer.name",
new Object[] { 28,"http://www.mkyong.com" }, Locale.US);
System.out.println("Customer name (English) : " + name);
у меня есть messages_en_US.properties файлы как C:/тест/сообщений и C:/тестовые папки. Они содержат следующую строку:
customer.name=Test, age : {0}, URL : {1}
Это все, что у меня есть, я чего-то не хватает? Сообщение, которое я получаю:
org.springframework.context.NoSuchMessageException: No message found under code 'customer.name' for locale 'en_US'.
at org.springframework.context.support.AbstractMessageSource.getMessage(AbstractMessageSource.java:155)
Кстати, я также пробовал внутренние свойства, также безуспешно. Я развертываю свой .war в своем локальном servicemix (6.1.1), я также использую калитки (6.24.0) и spring (3.2.14). Запуск приложения mkyong (который не является веб-приложением) локально (без его развертывания на моей локальной службе servicemix).
Так что это проблема ServiceMix. Я бы добавил его в теги и надеюсь, что кто-то с опытом ServiceMix поможет. –
Ну, я думаю, это в основном потому, что это веб-приложение, а не просто приложение для строк. Не тестировали подход mkyongs локально в веб-приложении. – SSV