2012-04-17 14 views
5

मेरे पास एक आरईएसटी सर्वर है जो प्रतिक्रिया शरीर में जेएसओएन भेजता है। मैंने हाल ही में अपाचे कैमल के बारे में पढ़ना शुरू कर दिया है। मैं अपनी आरईएसटी सेवा में अनुरोध भेजने के लिए निम्नलिखित का उपयोग करता हूं।अपाचे कैमल: ऊंट 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

अपाचे कैमल मार्शल और unmarshal POJO करने और JSON से करने के लिए एक घटक प्रदान करता है।

आपके मामले में, यह होगा:

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

वैसे, आप अपने json पुस्तकालय कॉन्फ़िगर करने के लिए यह करने के लिए आवश्यकता हो सकती है और मैं तुम्हें the official configuration पर नज़र रखना सुझाव देते हैं।

2

निम्नलिखित dependency-

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

परिभाषित JSON RouteBuilder में स्वरूप कक्षा

JacksonDataFormat jsonDataFormat = new JacksonDataFormat(Employee.class); 

इसके अलावा routebuilder कक्षा में ऊपर dataformat का उपयोग इस प्रकार में शामिल हैं -

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

स्रोत कोड और अधिक जानकारी - Apache Camel - Marshalling/Unmarshalling XML/JSON Data

संबंधित मुद्दे