我在使用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