On 24 April 2012 15:22, Claus Ibsen <[email protected]> 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 <[email protected]> wrote:
>> On 23 April 2012 17:29, Claus Ibsen <[email protected]> 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 <[email protected]> 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: [email protected]
>>> 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: [email protected]
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/