Помогите с Spring и JMS.Я пытаюсь настроить простой издатель с помощью Spring? - PullRequest
0 голосов
/ 10 мая 2011

Итак, у меня есть следующий издатель:

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");
            }
        });
    }
}

Итак, я застрял, настраивая объявления бинов. Я знаю, что мне нужен шаблон JMS:

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

Но я не знаю, как настроить фабрику соединений или пункт назначения. В весенних документах нет даже примера.

1 Ответ

3 голосов
/ 10 мая 2011

Ваша фабрика соединений может быть автономной:

<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"/>
...