2017-11-27 15 views
0

질문 :JBoss Fel 낙타 dsl을 camel-netty4-http를 사용하여 - 어떻게 REST 반환 코드를 얻으려면 로그에 기록합니까?

내가 보스 퓨즈 및 사용하고 낙타 netty4을-HTTP를 지내는 서비스에 게시합니다.
- REST 반환 코드 (상태 코드)를 얻는 방법 (기록하기 위해)?

샘플 코드 :

@Override 
public void configure() throws Exception { 

... 

from("wmq:queue:mylocalqueue") 
    .log("inMessage=" + (null==body()?"":body().toString())) 
    .to("seda:node1?concurrentConsumers=20"); 

from("seda:node1") 
    .streamCaching() 
    .threads(20) 
    .setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.POST)) 
    .setHeader(Exchange.CONTENT_TYPE, constant("application/json")) 
    .toD("netty4-http:http://localhost:7001/MyService/myServiceThing?textline\\=true") 
    .log("the http return/status code is [what?]..."; <=== need response/http code!!!  
}   

답변

3

귀하의 응답 코드가 Exchange 헤더에 있어야합니다. 간단한 표현식을 사용하여 추출 할 수 있습니다. 이 같은

from("direct:start") 
    .setHeader(Exchange.HTTP_METHOD, constant(HttpMethods.POST)) 
    .setHeader(Exchange.CONTENT_TYPE, constant("application/json")) 
    .to("netty4-http:http://localhost:8080") 
    .log("The response code is: ${header["+Exchange.HTTP_RESPONSE_CODE+"]}"); 
+0

것이 가능?뿐만 아니라,에 "onException"처리기 내부 리턴 코드를 액세스하는 onException (Exception.class) .LOG ($ {헤더 [ "+ Exchange.HTTP_RESPONSE_CODE +"]} "... 나는 그것을 얻는데 어려움을 겪고있는 것 같다 – sairn

+0

나는 그것이 있다고 생각한다. 메시지는 예외에서 전파된다. 이론 상으로는 같은 데이터를 가지고있다. –