У меня проблема с использованием MessageSource и Spring. По какой-то неизвестной (по крайней мере для меня) причине мой messageSource
объект не создается.
У меня есть следующие компоненты:
applicationContext.xml
...
<import resource="messageSource-ctx.xml" />
...
<context:component-scan base-package="com.foo.bar" />
...
1010 *
*
messageSource.xml
<beans ...>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>backendErrorCodesMapping</value>
<value>restErrorCodesMapping</value>
</list>
</property>
</bean>
</beans>
MessageSourceHelper.java
package com.foo.bar.util;
@Component
public class MessageSourceHelper {
@Autowired
private MessageSource messageSource;
...
}
GenericRestExceptionMapper.java
package com.foo.bar.rest.exception
@Component
public abstract class GenericRestExceptionMapper{
@Resource
private MessageSourceHelper msh;
....
}
InvalidRequestExceptionMapper.java
package com.foo.bar.rest.exception
@Provider
public class InvalidRequestExceptionMapper extends GenericRestExceptionMapper implements ExceptionMapper<InvalidRequestException> {
...
}
Как только InvalidRequestException
произойдет, он будет "пойман" InvalidRequestExceptionMapper
, который использует унаследованный msh
(MessageSourceHelper). Проблема в том, что этот объект имеет значение null, т. Е. Spring не внедряется.
В чем должна быть проблема? Я ценю всю помощь!
Заранее спасибо.