2013-11-08 9 views
-4

Я пытаюсь создать образец приложения, размещенного в «mina: tcp: // localhost: 9991», который отправляет очень простое сообщение серверу, размещенному на «mina: tcp: // localhost: 9990».Как отправить сообщение с помощью Apache Camel?

Теперь, по общему признанию, у меня есть некоторые проблемы с пониманием того, как это сделать. Мой первый подход заключался в создании класса Message, который имеет два поля: String order и String host. Тем не менее, я ужасно запутался в том, как это сделать.

Сначала я пытался следовать loadbalancer-пример основывая себя на ReportGenerator и создать класс MessageGenerator, которые могли бы создать сообщение и вернуть его:

Однако есть проблема, мне нужны параметры для создания моего сообщения, чего не происходит при создании отчета из примера:

//Message constructor 
public Message(String order, String host){ 
    //constructor stuff 
} 

Прочитав Camel in Action, я знаю, как использовать beans для вызова методов, которые не имеют параметров, однако я до сих пор не понимаю, как я должен использовать их для вызова метода с несколькими параметрами (я вынужден использовать процессоры?)

Тогда я понял, что, возможно, я немного усложняю ситуацию, и есть более простой способ отправки сообщений. Поэтому я попробовал другой подход, который привел к небольшому образцу кода, который не работает. Я создал отдельный вопрос по этому вопросу:

Очевидно, что я делаю что-то не так, и я не понимаю, что. Итак, у меня есть 2 вопроса:

  1. Мэннинга Camel in Action определяет Легкий способ и жесткий способ использовать бобы, но я не понимаю, легкий способ использования зерна с параметрами. Может ли кто-нибудь привести пример?
  2. Есть ли способ отправить сообщение, состоящее из нескольких полей в Camel (простой способ, без процессоров), который не включает использование bean-компонентов? Если да, то как?

ответ

2

Существует несколько способов отправки сообщений в Camel. Согласно справке, имеющейся в форумах Camel, два лучших являются:

  1. Использование бобов, связанных с Pojos и маршрутов (например: http://camel.apache.org/loadbalancing-mina-example.html)
  2. Использование Producer шаблон (DOCS: http://camel.apache.org/producertemplate.html)

Надеюсь, кому-то это поможет.

Смежные вопросы