2012-04-17 2 views
5

응답 본문에 JSON을 보내는 REST 서버가 있습니다. 최근 아파치 카멜에 대해 읽었습니다. 다음 명령을 사용하여 내 REST 서비스에 요청을 보냅니다. Apache Camel : 낙타 방식을 사용하는 POJO에 대한 Covert JSON

from("direct:start").setHeader("token", simple("234da")) 
          .to("http://localhost:8088/foo/bar/?foo1=bar1"); 

지금 응답이 JSON 될 것입니다, 어떤 식 으로든 내가 앞서 to()의 몇 가지 방법 (이 같은)를 사용하여 POJO에 직접 JSON을 얻을 수 있는가?

to("http://localhost:8088/foo/bar/?foo1=bar1").toPOJO(); 

비 스프링 솔루션을 선호합니다.

감사

답변

1

아파치 카멜 마샬링 및 비 정렬 화 POJO와 JSON에서 할 수있는 구성 요소를 제공합니다. 당신이 그것을 할 당신의 JSON 라이브러리를 구성해야 할 수 있습니다, 그런데

from("direct:start").setHeader("token", simple("234da")) 
.to("http://localhost:8088/foo/bar/?foo1=bar1") 
.unmarshal().json(); 

그리고 당신이 the official configuration에서 살펴 보시기 바랍니다 : 귀하의 경우

, 그것은 것입니다.

2

다음과 같이 RouteBuilder에서 다음 dependency-

<dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-jackson</artifactId> 
     <version>2.14.1</version> 
    </dependency> 

정의 JSON 형식은 또한 routebuilder 클래스에 위의 DATAFORMAT를 사용

JacksonDataFormat jsonDataFormat = new JacksonDataFormat(Employee.class); 

을 클래스 - 포함 -

from("file:C:/inputFolder").doTry().unmarshal(xmlDataFormat). 
     process(new MyProcessor()).marshal(jsonDataFormat). 
     to("jms:queue:javainuse") 

소스 코드 및 자세한 내용 - Apache Camel - Marshalling/Unmarshalling XML/JSON Data