ResourceBundle не найден для MessageSource при помещении в папку

Я пытаюсь использовать пакеты ресурсов с источником сообщений Spring. Вот как я это делаю:

@Component
public class MessageResolver implements MessageSourceAware {

    @Autowired
    private MessageSource messageSource;

    public void setMessageSource(MessageSource messageSource) {
        this.messageSource = messageSource;
    }

    public String getMessage(){
        return messageSource.getMessage("user.welcome", new Object[]{"Rama"}, Locale.US);
    }

}

А вот моя структура папок:

enter image description here

messages _en _US.properties содержит только одну строку:

user.welcome=Welcome {0}

Вот используемая конфигурация xml:

<bean name="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename">
        <value>resourcebundles/messages</value>
    </property>
</bean>

Вот ошибка, которую я получаю:

WARNING: ResourceBundle [resourcebundles/messages] not found for MessageSource: Can't find bundle for base name resourcebundles/messages, locale en_US
Exception in thread "main" org.springframework.context.NoSuchMessageException: No message found under code 'user.welcome' for locale 'en_US'.

Но если я перемещу свой пакет ресурсов непосредственно в папку ресурсов, он будет работать нормально. В этом случае вот конфигурация xml, которую я использую:

<bean name="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
    <value>messages</value>
</property>

В том, что если мне нужно использовать ResourceBundleMessageSource, я должен поместить свои пакеты ресурсов непосредственно под ресурсы? Если мне нужно хранить его только в указанной папке, есть ли другой способ заставить его работать?

Спасибо!

10
задан Prasanth 22 June 2012 в 08:20
поделиться