Apache Camel Преобразует JSON в JMS

#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 из моей очереди и просто переносить их в другую очередь.