Как использовать арифметические условия и операторы в селекторах ActiveMQ / JMS с использованием протокола Stomp
Вопрос
У меня есть несколько сообщений с установленными свойствами.Некоторые из них содержат числовые данные, хотя я не предпринимал попыток явно объявлять это ActiveMQ при отправке сообщений.
Когда я пытаюсь использовать арифметические условия, т. е.:<, >, <=, >= и семья, я получаю сообщение об ошибке.Есть ли какой-нибудь способ использовать арифметические условия с использованием селекторов через Stomp?Я уже поискал в Интернете и получил только следующее попадание в Google: http://rubyforge.org/tracker/index.php?func=detail&aid=21378&group_id=1010&atid=3981
Эта проблема, похоже, находится на столе, которая должна быть исправлена с помощью версии 1 протокола STOMP: http://stomp.codehaus.org/Stomp+v1.1+Ideas
Решение
Я рекомендую вам попробовать подпроект ActiveMQ под названием Аполлон.Он ориентирован на отличную поддержку STOMP и поддерживает числовые селекторы смотрите документы
Другие советы
в настоящее время Stomp обрабатывает все свойства как строки, поэтому использование арифметики не работает.Как вы выяснили, планируется поддерживать типы свойств в Stomp 1.1, и тогда вы сможете использовать их как в JMS.
Ваше здоровье Dejan
Единственный способ, который я нашел для выбора сообщений числовым способом с помощью STOMP и ActiveMQ, - это использовать XML-сообщения и селекторы XPATH:
Для использования XML-сообщений ActiveMQ требуется три jar от xalan:
- xalan.jar
- xmlImpl.jar
- xml-apis.jar
Все три должны быть в CLASSPATH (т.Е.:в каталоге activemq/lib).Все три доступны из бинарного пакета xalan.