2015-05-28 5 views
0

У меня есть Java интерфейс:Выбор конечной точки с помощью метода прокси

public interface IMyService 
{ 

    String method1(Document document) throws Exception; 

    String method2(Document document) throws Exception; 
} 

Я использую его в качестве верблюда прокси:

<camel:proxy id="myService" 
      serviceInterface="pl.package.service.IMyService" 
      serviceUrl="direct:myService"/> 

в этом маршруте:

<route id="myRoute" autoStartup="true"> 
    <from uri="direct:myService"/> 
    <process ref="postProcessor"/> 
    <camel:to uri="apiEndpoint"/> 
    <camel:process ref="responseProcessor"/> 
</route> 

сейчас, как выбрать различные конечные точки методом IMyService? Например:

 <route id="myRoute" autoStartup="true"> 
     <from uri="direct:myService"/> 
     <process ref="postProcessor"/> 
     if method == method1 
      { 
      <camel:to uri="apiEndpoint"/> 
      } 
      else 
      { 
      <camel:to uri="otherApiEndpoint"/> 
      } 

     <camel:process ref="responseProcessor"/> 
    </route> 

ответ

0

Верблюд прокси действительно просто способ в Java Bean вызова реализацию, оказывается, верблюд, что делает его выглядеть чистым внутри боба, а не очень грязно. Возможно, вам захочется, чтобы он вызывал маршрут, отправляя тело сообщения, указывающего, какую операцию вы хотите, а затем используя выбор.

from("direct:start") 
    .choice() 
     .when(body().isEqualTo("method1")) 
      .to("my processing work") 
     .when(body().isEqualTo("method2")) 
      .to("my other processing work") 
    .otherwise() 
     .to("well no proper method was called"); 
Смежные вопросы