#java #json #apache-camel
Вопрос:
Я пытаюсь преобразовать информацию в маршруте в формате JSON в формат JMS, чтобы я мог отправить ее в тему.
Посмотрев на документы, я вижу:
from("activemq:My.Queue").
marshal().json(JsonLibrary.Jackson).
to("mqseries:Another.Queue");
Правильно ли здесь интерпретировать, что мы отсортировали сообщение из очереди в JSON, а затем при отправке его в другую очередь оно было преобразовано обратно в сообщение JMS?
Если нет, то как мы можем добиться этого преобразования с помощью Java DSL?
Кроме того, можно ли добавлять пары ключ-значение в JSON по маршруту верблюда?
Спасибо.
Ответ №1:
Вы можете передавать любые данные в очередь JMS. Это marshal().json
предполагает, что данные My.Queue
были объектом java, который был преобразован в формат json. Another.Queue
Очередь получает объект json.
Вы также можете преобразовать свои данные в любом случае, прежде чем передавать их потребителю.
Комментарии:
1. В чем разница между отправкой данных без их предварительной сортировки и отправкой после сортировки? Преобразуем ли мы для удобства в JSON?
2. Я думаю, что этот пример просто показывал, что вы можете конвертировать в json без особых проблем. Вы могли бы так же легко удалить маршала в json, что означает, что ваш верблюжий маршрут будет собирать pojos из моей очереди и просто переносить их в другую очередь.