我在eclipse(Kepler)中创建了动态Web项目。在我的应用程序中,我使用了Spring,JMS,ActiveMQ和JSF。在我的java类中,使用以下代码来获取bean xml中的defaultdestination定义。

import javax.jms.Message;
import javax.jms.TextMessage;
import org.springframework.jms.core.JmsTemplate;


public class JmsReceiver {
    private JmsTemplate jmsTemplate;

public JmsTemplate getjmsTemplate() {

    return jmsTemplate;

}

public void setjmsTemplate(JmsTemplate jmsTemplate) {

    this.jmsTemplate = jmsTemplate;

}

public void processMessage() {


    System.out.println("DefaultDestination :"+jmsTemplate.getDefaultDestination());


}

}


我的bean定义是:

<bean id="defaultDestination" class="org.apache.activemq.command.ActiveMQQueue"></bean>

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"></property>
<property name="defaultDestination"><ref bean="defaultDestination"/></property>
<property name="defaultDestinationName" value="myqueue"></property>
</bean>


但是当运行'DefaultDestination:null'时。
请指导我解决这个问题

最佳答案

<bean id="demoQueueDestination" class="org.apache.activemq.command.ActiveMQQueue">
    <constructor-arg><!-- 设置消息队列的名字 -->
         <value>Jaycekon</value>
    </constructor-arg>
</bean>

ActiveMQDestination destination = (ActiveMQDestination) jmsTemplate.getDefaultDestination();
System.out.println(Thread.currentThread().getName() + " 向队列" + destination.getPhysicalName() + "发送消息---------------------->" + msg);

10-07 23:06