Hi, I'm not sure why you chose camel-cxfrs component to accept the request. If you just want to process the form, you can use the camel-jetty or camel-servlet directly. It could be more easy to add the basic autentications supports out of box.
-- Willem Jiang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://www.fusesource.com | http://www.redhat.com Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English) http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese) Twitter: willemjiang Weibo: 姜宁willem On Wednesday, May 15, 2013 at 11:03 AM, wagnermarques wrote: > Hello camel riders, > > I would like to share a solution and ask if it was the best aproach. > I think it can be util for some one in the future and because is a > interesting example of integration using camel! > > > The use case: > I have a orbeon forms installed that was configured to: 1) save the form > date to existdb and 2) after it, send metadata of the form to my camel route > described below. With the camel route, with the metadate of the form > submited (using camel-http) the route interact with existdb rest api to get > the real date of the form. > > > Ok, it is a simplification of the use case, because next step is improve it > with business rules upon form metadata and start a business process deployed > in apache ode. But start the process from the route is not implemented yet > and not described here. > > > That is the code (sorry for much comments) > > > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:cxf="http://camel.apache.org/schema/cxf" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd > http://camel.apache.org/schema/cxf > http://camel.apache.org/schema/cxf/camel-cxf.xsd"> > > > <cxf:rsServer id="rsRestServices_OrbeonServer" > address="http://localhost:18181/orbeonservice" > serviceClass="br.edu.fzlbpms.service.orbeon.ControllerService" /> > > <camelContext xmlns="http://camel.apache.org/schema/spring"> > <route id="FZLBPMS_CAMEL_ROUTE___cxfrs_bean_rsRestServices_OrbeonServer"> > <from uri="cxfrs:bean:rsRestServices_OrbeonServer" /> > > > <setBody> > <constant>""</constant> > </setBody> > > <to uri="Handle_App_e_FormTitle_camming_from_orbeonformPROCESSOR"/> > > > <setHeader headerName="CamelHttpUri"> > <simple> > http://localhost:8282/exist/rest/db/orbeon/fr/${header.fzlbpms_orbeon_app}/${header.fzlbpms_orbeon_form}/data/${header.fzlbpms_orbeon_dataId}/data.xml?bridgeEndpoint=true > </simple> > </setHeader> > > > <inOut uri="http://doesnt.matter.we/override/it/anyways" /> > </route> > </camelContext> > > > > <bean id="messageInspectProcessor" > class="br.edu.fzlbpms.service.orbeon.MessageInspectProcessor" /> > > <bean id="Handle_App_e_FormTitle_camming_from_orbeonformPROCESSOR" > class="br.edu.fzlbpms.service.orbeon.Pega_dados_do_formularioPROCESSOR" /> > > <bean id="BuildResponseProcessor" > class="br.edu.fzlbpms.service.orbeon.BuildResponseProcessor" /> > > </beans> > > > > This processor is important to distinct what data is camming from witch form > by filling the values of the headers: > ${header.fzlbpms_orbeon_app} > ${header.fzlbpms_orbeon_form} > ${header.fzlbpms_orbeon_dataId} > > public class Pega_dados_do_formularioPROCESSOR implements Processor{ > > public void process(Exchange exchange) throws Exception { > > String camelHttpQuery = > (String)exchange.getIn().getHeader("CamelHttpQuery"); > > > //app=existapp&form=existappform1&document=c757e862848cf9cc2e170d9325a1fc94c282a8e4 > String[] split = camelHttpQuery.split("&"); > > > //app=existapp > String[] appParam = split[0].split("="); > String app = appParam[1]; > > > String[] formParam = split[1].split("="); > String form = formParam[1]; > > String[] dataParam = split[2].split("="); > String dataId = dataParam[1]; > > > System.out.println("\n\n"); > System.out.println(app); > System.out.println(form); > System.out.println(dataId); > > exchange.getIn().setHeader("fzlbpms_orbeon_app", app); > exchange.getIn().setHeader("fzlbpms_orbeon_form", form); > exchange.getIn().setHeader("fzlbpms_orbeon_dataId", dataId); > > } > > } > > > > I still have several problems and doubts, like basic autentications for > example, but for now I just would like to share and to ask about if it was a > good aproach of this kind of integration (if it is relevant in some sense). > > Thanks, > > > > > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Sharing-a-solution-for-discussion-tp5732560.html > Sent from the Camel - Users mailing list archive at Nabble.com > (http://Nabble.com).
