You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by RR <ra...@gmail.com> on 2012/04/08 03:14:05 UTC
RestFul Services using CAMEL
I am a newbie to CAMEL. Pardon me if this is a so naive.
Our users are going to call a REST webservice that's going to load a very
big XML file and respond back only a portion of the XML. I came across
tokenizeXML() in Splitter EAI pattern and played around a bit and works
great stand-alone.
But I am not able to implement this while try to integrate with CXF
Webservice.
In my beans.xml I have,
<bean id="demoService" name="demoService" class="com.hrb.demo.DemoService">
</bean>
<jaxrs:server id="demo" address="/demo">
<jaxrs:serviceBeans>
<ref bean="demoService" />
</jaxrs:serviceBeans>
</jaxrs:server>
<cxf:rsServer id="myServer" address="/demo"
serviceClass="com.hrb.demo.DemoService" />
<camelContext id="mycamelContext"
xmlns="http://camel.apache.org/schema/spring">
<package>com.hrb.demo</package>
</camelContext>
and I want my Routerclass to process the request by loading the XML using
split(), tokenizeXML() and streaming() and send the response back.
from("cxfrs://bean:myServer"). process(new Processor() {
public void process(Exchange arg0) throws Exception {
//THE FILE order.dat is compressed..
File file = new File(
"C:\\temp\order.dat");
ZipFile zipfile = new ZipFile(file);
Enumeration e = zipfile.entries();
ZipEntry entry = null;
while (e.hasMoreElements()) {
entry = (ZipEntry) e.nextElement();
}
// I WANT TO SEND THIS STREAM TO THE NEXT
ROUTE..BUT NOT SURE HOW???
}
}).split().tokenizeXML("Order").streaming().process(new Processor() {
// IF THE TOKENIZED STRING IS EQUAL TO CERTAIN
VALUE,
// I WANT TO SET THE RESPONSE FOR REST SERVICE.
}.end();
}
I dont know whether it's possbile to do this way via CAMEL. Any help is
greatly appreciated.
Thanks,
RR
--
View this message in context: http://camel.465427.n5.nabble.com/RestFul-Services-using-CAMEL-tp5625332p5625332.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: RestFul Services using CAMEL
Posted by Willem Jiang <wi...@gmail.com>.
On Sun Apr 8 09:14:05 2012, RR wrote:
> I am a newbie to CAMEL. Pardon me if this is a so naive.
>
> Our users are going to call a REST webservice that's going to load a very
> big XML file and respond back only a portion of the XML. I came across
> tokenizeXML() in Splitter EAI pattern and played around a bit and works
> great stand-alone.
>
> But I am not able to implement this while try to integrate with CXF
> Webservice.
>
> In my beans.xml I have,
>
> <bean id="demoService" name="demoService" class="com.hrb.demo.DemoService">
> </bean>
> <jaxrs:server id="demo" address="/demo">
> <jaxrs:serviceBeans>
> <ref bean="demoService" />
> </jaxrs:serviceBeans>
> </jaxrs:server>
>
> <cxf:rsServer id="myServer" address="/demo"
> serviceClass="com.hrb.demo.DemoService" />
>
> <camelContext id="mycamelContext"
> xmlns="http://camel.apache.org/schema/spring">
> <package>com.hrb.demo</package>
> </camelContext>
>
> and I want my Routerclass to process the request by loading the XML using
> split(), tokenizeXML() and streaming() and send the response back.
>
> from("cxfrs://bean:myServer"). process(new Processor() {
> public void process(Exchange arg0) throws Exception {
> //THE FILE order.dat is compressed..
> File file = new File(
> "C:\\temp\order.dat");
> ZipFile zipfile = new ZipFile(file);
> Enumeration e = zipfile.entries();
> ZipEntry entry = null;
> while (e.hasMoreElements()) {
> entry = (ZipEntry) e.nextElement();
> }
> // I WANT TO SEND THIS STREAM TO THE NEXT
> ROUTE..BUT NOT SURE HOW???
You can use the ProducerTemplate[1] to send the message to the other
route.
But I'm not sure why your route start with the camel-cxfrs consumer,
but you processor doesn't use the request.
> }
> }).split().tokenizeXML("Order").streaming().process(new Processor() {
>
> // IF THE TOKENIZED STRING IS EQUAL TO CERTAIN
> VALUE,
> // I WANT TO SET THE RESPONSE FOR REST SERVICE.
Yeah, you can put the response here.
> }.end();
>
> }
>
> I dont know whether it's possbile to do this way via CAMEL. Any help is
> greatly appreciated.
>
> Thanks,
> RR
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/RestFul-Services-using-CAMEL-tp5625332p5625332.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
--
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog: http://willemjiang.blogspot.com (English)
http://jnn.javaeye.com (Chinese)
Twitter: willemjiang
Weibo: willemjiang