2016-10-17 2 views
0

나는 형식의 요청받는 낙타 REST 엔드 포인트가 : - 요청 본문에 method 필드의 값을 기반으로낙타 - JSON 요청 본문에 따라 콘텐츠 기반 라우팅

{"method" : "getHello"} 

내가 원하는을 요청을 다른 경로로 라우트하십시오. 그래서 나는 다음과 같은 것을 시도 : -

from("jetty:http://localhost:8888/hello").unmarshal().json(JsonLibrary.Jackson, RouteRequest.class) 
      .choice() 
       .when(method(DynamicRouter.class, "route").isEqualTo("getHello")).to("stream:out") 
      .otherwise() 
       .log("Processing Failed"); 

동적 라우터 클래스는 다음과 같다 : -

public class DynamicRouter { 
    public String route(RouteRequest req) { 
     switch (req.getMethod()) { 
     case "getHello":    
      return "xxxx"; 
     } 
     return null; 
    } 
} 

심지어 내가 route()에서 xxxx를 반환하고 있지만 술어 아래 항상 진실하고 그것을 평가하고있다하지만 . 결코 그렇지 않다.

isEqualTo("getHello")).to("stream:out") 

내가 잘못하고있는 것을 누군가가 나에게 알릴 수 있습니까? 또한 내가 성취하려고 노력하는 것의 더 좋은 방법이 있습니까?

나는 예상대로 camel 2.16.3

답변

0

에이 노력입니다. 내 log4j.properties이 클래스 경로에 제대로 구성되지 않았습니다. 그래서 로그가 나타나지 않았습니다.

+0

질문을 삭제하면됩니다. –

관련 문제