Ich verwende die neuesten Spring 4 und ActiveMQ, um JMS-Nachrichten in eine Warteschlange zu stellen. Unter Verwendung der JMSTemplate habe ich eine Standardwarteschlange, und der Beispielcode, den ich habe, lässt mich eine Nachricht ohne Probleme in die Standardwarteschlange schreiben. Es gibt auch einen Beispielcode, mit dem ich eine Nachricht auf ein Ziel setzen kann ... hier bin ich aufgelegt.Spring und JMS DynamicDestinationResolution
ursprüngliche Methode:
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;
}
});
}
Wenn ich ein Ziel habe, kann ich das in geben und es sollte funktionieren, aber ich habe es noch nicht ausprobiert. Was ich wirklich tun möchte, ist eine Zeichenfolge für einen Namen oder ein Thema zu übergeben.
Hier ist, was Ich mag würde:
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;
}
});
}
}
Wenn die Warteschlange oder ein Thema vorhanden ist, bringe diese Destination, andernfalls null zurück.
Wir möchten keine temporären Warteschlangen oder Themen, und wir erstellen keine neuen Warteschlangen oder Themen im laufenden Betrieb. Wir verwenden JNDI auch nicht innerhalb dieser Spring-Anwendung. Wir verwenden das ActiveMQ-Web-Admin-Tool, um unsere Themen oder Warteschlangen zu erstellen.
Also suchte ich nach einem Beispiel für eine Methode wie ich beschrieben habe. Ich habe das Netz durchforstet, bevor ich hierher kam, und ich habe zuerst nachgesehen, bevor ich diese Frage gestellt habe. Wenn mir jemand eine Dokumentation oder eine Website mit einem Code-Snippet empfehlen kann, wäre das großartig.
Danke für die Hilfe!