On 24 April 2012 15:22, Claus Ibsen <claus.ib...@gmail.com> wrote: > Hi > > Thanks > > Just to be sure how do you refer to this external file? >
I'm loading it with: FileInputStream is = new FileInputStream( file ); try { RoutesDefinition routes = camelContext.loadRoutesDefinition( is ); camelContext.addRouteDefinitions( routes.getRoutes() ); } catch ( Exception e ) { log.info( "Unable to load route: " + e.getMessage() ); return ERROR; } > > > > On Mon, Apr 23, 2012 at 6:54 PM, Bob Jolliffe <bobjolli...@gmail.com> wrote: >> On 23 April 2012 17:29, Claus Ibsen <claus.ib...@gmail.com> wrote: >>> Hi >>> >>> Do you declare the route in an external file, or how do you refer to >>> the xml file with that route? >>> Maybe you can post your full XML files. >> >> I have the route declared in an external file. The following is a >> complete listing of the file which illustrates the problem: >> >> <?xml version="1.0" encoding="UTF-8"?> >> <route xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://camel.apache.org/schema/spring >> camel-spring-2.9.1.xsd" >> xmlns="http://camel.apache.org/schema/spring" >> xmlns:d="http://dhis2.org/schema/dxf/2.0" >> id="dataUpdater"> >> >> <description>Import Metadata</description> >> <!-- every now and again ... --> >> <from >> uri="quartz://halfminute?trigger.repeatInterval=300000&trigger.repeatCount=10"/> >> <to >> uri="http://localhost/trunk/api/metaData.xml"/> >> <split> >> <xpath>/d:dxf/d:organisationUnits/d:orgainsationUnit</xpath> >> <log loggingLevel="INFO" message="Processed one orgunit" /> >> </split> >> </route> >> >> The error I get is: >> Failed delivery for (MessageId: >> ID-bobs-laptop-39546-1335131554800-0-25 on ExchangeId: >> ID-bobs-laptop-39546-1335131554800-0-24). Exhausted after delivery >> attempt: 1 caught: >> org.apache.camel.builder.xml.InvalidXPathExpression: Invalid xpath: >> /d:dxf/d:organisationUnits/d:orgainsationUnit. Reason: >> javax.xml.xpath.XPathExpressionException (MarkerIgnoringBase.java >> [DefaultQuartzScheduler-camel-builtin_Worker-2]) >> >> Note that I have declared xmlns:d="http://dhis2.org/schema/dxf/2.0" on >> the route element. It seems this is not being picked up. >> >> Regards >> Bob >> >>> >>> >>> On Mon, Apr 23, 2012 at 6:23 PM, Bob Jolliffe <bobjolli...@gmail.com> wrote: >>>> I have an application where I load a camel context using spring and >>>> then add different spring dsl routes particular to individual site >>>> configurations. >>>> >>>> I am having trouble using an XPath splitter because of the issue with >>>> making namespaces visible to the XPath processor. >>>> >>>> I've seen from here >>>> (http://camel.465427.n5.nabble.com/fail-filter-XPATH-camel-td476424.html) >>>> that if the route is defined within a camel context, then you can make >>>> the namespace visible in the usual way, as a xmlns declaration in the >>>> root (context) element. >>>> >>>> But this doesn't seem to work if I am loading just a route into an >>>> existing context. >>>> >>>> <route xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>> xmlns="http://camel.apache.org/schema/spring" >>>> xmlns:d="http://dhis2.org/schema/dxf/2.0" >>>> id="dataUpdater"> >>>> >>>> <description>Import Metadata</description> >>>> <!-- every now and again ... --> >>>> <from >>>> uri="quartz://halfminute?trigger.repeatInterval=300000&trigger.repeatCount=10"/> >>>> <to >>>> uri="http://localhost/trunk/api/metaData.xml?"/> >>>> <split> >>>> <xpath>/d:/dxf2/d:organisationUnit</xpath> >>>> <to .... /> >>>> </split> >>>> >>>> Camel complains that the xpath expression is illegal. Has anyone come >>>> across (and maybe solved) this problem before? >>>> >>>> I've had a look at the tokenize xml approach, which seems nice (and >>>> efficient) but again it doesn't seem to handle namespaces. >>>> >>>> Any advice welcome. >>>> >>>> Regards >>>> Bob >>> >>> >>> >>> -- >>> Claus Ibsen >>> ----------------- >>> CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com >>> FuseSource >>> Email: cib...@fusesource.com >>> Web: http://fusesource.com >>> Twitter: davsclaus, fusenews >>> Blog: http://davsclaus.blogspot.com/ >>> Author of Camel in Action: http://www.manning.com/ibsen/ > > > > -- > Claus Ibsen > ----------------- > CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com > FuseSource > Email: cib...@fusesource.com > Web: http://fusesource.com > Twitter: davsclaus, fusenews > Blog: http://davsclaus.blogspot.com/ > Author of Camel in Action: http://www.manning.com/ibsen/