0

首先,我检查了发布新问题时出现的一些可能的答案,而我遇到的没有一个与我的问题有关。

我有一个运行良好的 Spring MDP,即可以接收消息。问题是当我尝试自动装配依赖项时,自动装配似乎不起作用。我正在使用 Netbeans 和 Glassfish 3.1.2,因此我能够单步执行代码并确认依赖项为空。应用程序其他部分的自动装配工作正常。MDP 在组件扫描中被拾取。

我使用 springsource 中的示例来创建我的 MDP: http ://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/jms.html

我已经通过 setter 方法自动装配了依赖项。

我无法弄清楚为什么这不起作用。我已经检查过了,我认为其他人没有遇到过这个问题。

任何想法,正确方向的指针,我可以参考的示例将不胜感激。

谢谢。

KSS

MDP类:

public class ExampleListener implements MessageListener {

    private Transformer transformer;
    private MurexService murexService;

    @Autowired
    public void setTransformer(Transformer transformer) {
        this.transformer = transformer;
    }

    @Autowired
    public void setMurexService(MurexService murexService) {
        this.murexService = murexService;
    }

    @Override
    public void onMessage(Message message) {
        if (message instanceof TextMessage) {
            try {
                System.out.println(((TextMessage) message).getText());
            } catch (JMSException ex) {
                throw new RuntimeException(ex);
            }
        } 
    }
}

应用上下文:

<jee:jndi-lookup id="connectionFactory" jndi-name="jms/QueueConnectionFactory" />  
<jee:jndi-lookup id="testQueueOne" jndi-name="jms/ITFS_RECEIVE" /> 

<!-- this is the Message Driven POJO (MDP) -->
<bean id="messageListener" class="com.scm.service.ExampleListener" />


<!-- and this is the message listener container -->
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="connectionFactory"/>
    <property name="destination" ref="testQueueOne"/>
    <property name="messageListener" ref="messageListener" />
</bean>
4

1 回答 1

3

需要在 @Autowired 字段中注册 AutowiredAnnotationBeanPostProcessor 以进行接线javadoc 有更多细节。有关类似问题的解决方案,请参见此处。

本质上添加这个应该可以让自动装配工作:

<context:annotation-config/>
于 2013-04-26T11:57:03.433 回答