Cómo utilizar operadores aritméticos y condiciones en ActiveMQ / JMS selectores utilizando el protocolo Stomp
Pregunta
Tengo varios mensaje con propiedades establecidas. Algunos de estos contienen datos numéricos, aunque he hecho ningún intento para declarar explícitamente a ActiveMQ al enviar los mensajes.
Cuando intento utilizar condiciones aritméticas, es decir: <,>, <=,> = y la familia, me sale un error. ¿Hay alguna manera de utilizar las condiciones aritméticas usando selectores través pisa fuerte? Ya he buscado en la web y solo recibió los siguientes golpeado en Google: http://rubyforge.org/tracker/index.php?func=detail&aid=21378&group_id=1010&atid=3981
Este problema parece estar en la mesa para ser fijada con v1.1 del protocolo STOMP: http://stomp.codehaus.org/Stomp+v1.1+Ideas
Solución
Le recomiendo que pruebe a cabo el subproyecto ActiveMQ llamada Apolo . Es una enfocado en tener un gran apoyo STOMP y es compatible con los selectores numéricos ver los documentos
Otros consejos
Actualmente Stomp trata a todas las propiedades como cadenas, por lo que el uso de la aritmética no funciona. Como has descubierto, está previsto para soportar tipos de propiedad en Stomp 1.1 y luego usted será capaz de utilizarlas como en JMS.
Saludos Dejan
La única manera que he encontrado para hacer la selección de los mensajes de forma numérica con STOMP y ActiveMQ es usar mensajes XML y selectores XPATH:
Para utilizar los mensajes XML, ActiveMQ requiere tres frascos de xalan:
- xalan.jar
- xmlImpl.jar
- xml-apis.jar
Los tres deben estar en el CLASSPATH (es decir: en el directorio activemq / lib). Los tres están disponibles en el paquete binario xalan.