Я использую WSO2 ESB 4.8.1 и RabbitMQ в качестве брокера сообщений. Как настроить настроенную очередь replyTo в очереди производителей. Я обнаружил, что в axis2 messageContext мы можем установить очередь ответа, но он ожидает EndpointReference. Есть ли способ установить строковое значение?Как я могу задать имя очереди строк для replyTo() в MessageContext Axis2 + WSO2 ESB 4.8.1
ответ
Если WSO2 ESB является производителем, и вы хотите, чтобы он установил заголовок JMSReplyTo, определите параметр «transport.jms.replyDestination» в вашем uri.
образца с ActiveMQ (я позволю вам адаптировать его к RabbitMQ):
<send>
<endpoint>
<address uri="jms:/dynamicQueues/RequestQueueName?transport.jms.ConnectionFactory=myQueueConnectionFactory&transport.jms.ReplyDestination=ReplyQueueName/>
</endpoint>
</send>
Определение "myQueueConnectionFactory" в хранилище/CONF/axis2/axis2.xml, внутри JMS transportSender определение:
<parameter name="myQueueConnectionFactory" locked="false">
<parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
<parameter name="java.naming.provider.url" locked="false">failover:(tcp://localhost:61616)?jms.useCompression=true</parameter>
<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
<parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
<parameter name="transport.jms.CacheLevel" locked="false">connection</parameter>
</parameter>
-> Вы не используете нечто большее, чем «соединение» в CacheLevel: он не будет работать с уровнем кеша сеанса
Если это не так, то что вам нужно, вы можете попробовать изменить заголовок, определяющий такое свойство в транспортной сфере:
<property name="JMSReplyTo" scope="transport" value="ReplyQueueName"/>
Когда вы собираетесь добавить REPLYTO в RabbitMQ, необходимо указать обратного вызова очереди, как вы ожидаете ответа. Это можно определить в WSO2 ESB axis2.xml ($ ESB_HOME/репозиторий/conf/axis2 /) в качестве конфигурации.
- rabbitmq.replyto.name
Вы должны дать очередь обратного вызова в качестве значения этого свойства.
<parameter name="rabbitmq.replyto.name" locked="false">testqueue</parameter>
И вы просите установить строковое значение. Это немного запутанно, поскольку вы ожидаете добавить строковое значение. Согласно протоколу amqp, это свойство определяет очередь обратного вызова и ожидает результата ссылки на конечную точку [1,2].
Надеюсь, что это решит вашу проблему, и если вам нужно больше разъяснений, прокомментируйте.
[1] https://www.rabbitmq.com/direct-reply-to.html [2] https://www.rabbitmq.com/tutorials/tutorial-six-python.html
- 1. WSO2 AS: получить Axis2 MessageContext в CXF?
- 2. Как я могу оповестить многостраничное сообщение в WSO2 ESB 4.8.1?
- 3. таймаута WSO2 ESB 4.8.1 как JMS Потребитель
- 4. WSO2 ESB: настройки Axis2-JSON
- 5. Как сделать асинхронный вызов в WSO2 ESB 4.8.1
- 6. Свойство переноса транзакций JMS не работает в WSO2 4.8.1 ESB
- 7. Ошибка компиляции wso2 ESB 4.8.1. и ядро
- 8. Прокси-сервис: AdminProxy Admin Exception в wso2 esb 4.8.1
- 9. Установка Wso2 Dss на Wso2 ESB 4.8.1 с указанием ошибки
- 10. Конфигурация для WSO2 ELB с WSO2 ESB
- 11. Публикация данных из WSO2 ESB 4.8.1 на WSO2 DAS
- 12. WSO2 ESB Custom Axis Module JSON Полезная нагрузка в MessageContext
- 13. WSO2 ESB axis2 xml построитель сообщений
- 14. Как получить идентификатор процесса в WSO2 ESB 4.8.1
- 15. wso2 esb 4.8.1 посредник выноски и ошибка multipart/form-data?
- 16. WSO2 ESB Axis2 Ошибка обслуживания Ошибка имени хоста для хоста
- 17. Сравнение строк в wso2 esb
- 18. Как звонить WSO2 ESB прокси-сервис от WSO2 ESB Schedular
- 19. Запись в файл с использованием VFS-WSO2 ESB 4.8.1
- 20. Специальный соединитель WSO2 ESB
- 21. WSO2 ESB DBLookup-посредник запрашивает несколько строк
- 22. Невозможно передать параметры в Шаблон последовательности - WSO2 ESB 4.8.1
- 23. Clone Mediaotor Не работает в WSO2 ESB 4.8.1
- 24. Как защитить Axis2 WebService от WSO2 ESB 5.0.0?
- 25. соединитель salesforce не может быть включен в wso2 esb 4.8.1
- 26. WSO2 ESB 4.8.1 Ошибка при добавлении нового источника данных
- 27. Не удается войти в wso2 carbon при развертывании WSO2 ESB 4.8.1 на сервере linux
- 28. WSO2 ESB Получить имя пользователя
- 29. WSO2 ESB 4.8.1 удалить кодировку = UTF-8 из запроса
- 30. WSO2-ESB 4.8.1 кластер с nginx. Рабочий узел не присоединяется
Я попытался с решением при условии, но не может получить ожидаемый результат. Ниже приведен подробный сценарий - у меня будет очередь производителей ex: «esb_sample_queue», и с этим я хочу добавить reply_to как «reply_sample_queue». Когда я получил запрос в back-end reply_to, он появится как «Reply to Queue: Address: http://www.w3.org/2005/08/addressing/none». Есть ли способы решить это? Дайте мне знать для дальнейших разъяснений –
Есть ли способ установить ответ в MessageContext like - MessageContext.setReplyTo (reply_sample_queu)? Поскольку класс «RabbitMQMeesage.java» в «axis2-transport-rabbitmq-amqp_1.1.0.wso2v9.jar» использует метод MessageContext.getReply() для установки свойства RABBITMQ_REPLY_TO. Пожалуйста, предложите. Дайте мне знать для дальнейшего уточнения –