Comment utiliser des conditions arithmétiques et opérateurs dans ActiveMQ / JMS Selectors en utilisant le protocole Stomp
Question
J'ai plusieurs messages avec des propriétés définies. Certains d'entre eux contiennent des données numériques, bien que je l'ai pas essayé de le déclarer explicitement ActiveMQ lors de l'envoi des messages.
Lorsque je tente d'utiliser des conditions arithmétiques, à savoir: <,>, <=,> = et de la famille, je reçois une erreur. Est-il possible d'utiliser des conditions arithmétiques à l'aide de sélecteurs via Stomp? Je l'ai déjà cherché sur le web et seulement obtenu ce qui suit a frappé sur google: http://rubyforge.org/tracker/index.php?func=detail&aid=21378&group_id=1010&atid=3981
Cette question semble être sur la table à fixer avec V1.1 du protocole STOMP: http://stomp.codehaus.org/Stomp+v1.1+Ideas
La solution
Je vous recommande d'essayer le ActiveMQ appelé Apollo . Il est un concentré d'avoir un grand soutien STOMP et prend en charge les sélecteurs numériques voir les docs
Autres conseils
actuellement Stomp traite toutes les propriétés comme des chaînes, donc en utilisant l'arithmétique ne fonctionne pas. Comme vous l'avez découvert, il est prévu de soutenir les types de propriété dans Stomp 1.1 et vous serez en mesure de les utiliser comme dans JMS.
Vive Dejan
La seule façon que j'ai trouvé à faire la sélection sur les messages d'une manière numérique avec STOMP et ActiveMQ est d'utiliser des messages XML et sélecteurs XPATH:
Pour utiliser des messages XML, ActiveMQ nécessite trois pots de xalan:
- xalan.jar
- xmlImpl.jar
- xml-apis.jar
Les trois doivent être dans le CLASSPATH (ex: dans le répertoire ActiveMQ / lib). Tous les trois sont disponibles à partir du paquet binaire xalan.