我在使用MessageSource和Spring时遇到了问题。对于一些未知的(至少对我而言)原因,我的messageSource
对象没有被实例化。MessageSource没有被Spring注入
我有以下组成部分:
applicationContext.xml
...
<import resource="messageSource-ctx.xml" />
...
<context:component-scan base-package="com.foo.bar" />
...
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
“cought”,它使用继承的msh
(MessageSourceHelper)。问题是这个对象是null,即它没有被Spring注入。
应该是什么问题?我感谢所有的帮助!
在此先感谢。
什么是'@ Provider'?你确定'InvalidRequestExceptionMapper'是由Spring管理的吗? – axtavt 2011-04-26 16:50:26