2015-09-28 4 views
0

Я очень новичок в Apache Camel и буду очень признателен, если кто-то сможет предоставить мне, какие компоненты верблюда могут быть использованы для решения конкретной задачи. У меня есть простой REST WS. Эта услуга недоступна для аудитории. Идея состоит в том, чтобы создать средний уровень между пользовательскими запросами и службой конечных точек. Поэтому мне придется поймать запрос пользователя, сделать с ним некоторые манипуляции, отправить на ограниченный WS и дать ответ пользователю. Я только начал изучать верблюд апаче, и вопрос в том, что это лучший способ реализовать эту логику. Thx заранее!Начать с Apache Camel

ответ

0

Честно говоря, Camel не является правильной структурой для реализации веб-контроллеров. Конечно, есть Camel Rest Module, но он слишком растягивает ответственность за рамки.

Я рекомендую использовать более адаптивную структуру для реализации WS, например. Весна или Джерси и программно вызывается конечными точками Верблюда из обработчиков запросов. В Спринг, вызывая Camel Endpoints легко, так как CamelContext может получить autowired в ваш веб-контроллер:

camelContext.createProducerTemplate().sendBodyAndHeader("direct:myEndpoint", null, "id", id); 

Для вашего Camel Root этот подход означает, что она начинается не с Direct endpoint, затем передает в Camel http конечной точке, и если необходимые пересылает выход из HTTP вызова некоторой Spring бина стадии трансформации, прежде чем окончательно передать его обратно к методу веб-обработчика контроллера:

<route> 
     <from uri="direct:myEndpoint"/> 
     <to uri="http:somehost.com"/> 
     <transform> 
      <method ref="springBean" method="doSomeTransformation"/> 
     </transform> 
    </route> 
0

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

Вы можете использовать:

Пример использования Java DSL:

from("jetty://http://localhost:7070/test").to("jetty://http://localhost:7070/test1"); 

Пример использования чертеж

<route> 
    <from uri="jetty://http://localhost:7070/test"/> 
    <to uri="jetty://http://localhost:7070/test1"/> 
<route> 
+0

Whis это получение downvote? –