Hi Thanks
Just to be sure how do you refer to this external file? 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/