0

所以我有以下出版商:

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.Topic;

import org.springframework.jms.core.MessageCreator;
import org.springframework.jms.core.JmsTemplate;

public class JmsTopicSender {

    private JmsTemplate jmsTemplate;
    private Topic topic;

    public void setTopic(Topic topic) {
        this.topic = topic;
    }

    public void simpleSend() {
        this.jmsTemplate.send(this.topic, new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {
                return session.createTextMessage("hello Topic");
            }
        });
    }
}

所以我现在坚持设置 bean 声明。我知道我需要一个 JMSTemplate:

<bean id="jms-template" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="connection-factory" />
    <property name="defaultDestination" ref="destination" />
</bean>

但我不知道如何设置连接工厂或目的地。spring 文档中甚至没有示例。

4

1 回答 1

3

您的连接工厂可以是独立的:

<bean id="connection-factory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:12345"/>
</bean>

或者您可以从 JNDI 中检索它:

<jee:jndi-lookup id="connection-factory" jndi-name="jms/ConnFactory"/>

您的目的地也一样:

<bean:id="myQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="queue.my"/>
</bean>

<jee:jndi-lookup id="myQueue" jndi-name="jms/MyQueue"/>
于 2011-05-10T11:50:36.193 回答