Я использую последние Spring 4 и ActiveMQ для размещения JMS-сообщений в очереди. Используя JMSTemplate, у меня есть очередь по умолчанию, и пример кода, который я имею, позволяет мне помещать сообщение в очередь по умолчанию без проблем. Существует также пример кода, который позволяет мне помещать сообщение в пункт назначения ... вот где я повесил трубку.Spring и JMS DynamicDestinationResolution
оригинальный метод:
public void send(final Destination dest,final String text) {
this.jmsTemplate.send(dest,new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
Message message = session.createTextMessage(text);
return message;
}
});
}
Если у меня есть назначения, я могу передать, что и он должен работать, но я не пробовал еще. Я действительно хочу передать строку для имени или темы.
Вот что я хотел:
public void send(final String destination,final String text) {
Destination dest = getDestinationFromString(destination);
if(dest != null) {
this.jmsTemplate.send(dest,new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
Message message = session.createTextMessage(text);
return message;
}
});
}
}
Если очередь или тема существует, возвращает этот пункт назначения, в противном случае возвращают нуль.
Нам не нужны временные очереди или темы, и мы не создаем новые очереди или темы на лету. Мы также не используем JNDI в этом приложении Spring. Мы используем инструмент администрирования ActiveMQ для создания наших тем или очередей.
Итак, я искал пример такого метода, как я описал. Я прочесывал сеть, прежде чем приехал сюда, и сначала посмотрел на нее, прежде чем я разместил этот вопрос. Если кто-то может передать мне какую-то документацию или сайт, на котором есть фрагмент кода для этого, это было бы здорово.
Спасибо за помощь!