Hej,
I have a problem with xpath when creating own camel context (e.g. in
activator) inside osgi container (karaf). Following code:
public void start( BundleContext bc ) throws Exception {
ccontext = new DefaultCamelContext();
ccontext.addComponent("jms",
getActiveMqJmsComponent("username", "pass", "failover://tcp://url"));
try {
ccontext.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
Namespaces ns = new Namespaces("", "");
final XPathExpression testXpathExpression = ns
.xpath("/result/sensor_id/text()");
from("jms://topic:myTopic").process(new Processor() {
public void process(Exchange exchange) throws
Exception {
System.out.println("test1: >" +
testXpathExpression.evaluate(exchange)+ "<");
System.out.println("test2: >" +
testXpathExpression.evaluate(exchange, Integer.class)+ "<");
}
});
}
});
ccontext.start();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("started");
}
returns:
test: >com.sun.org.apache.xml.internal.dtm.ref.dtmnodel...@1b993d6<
test: >null<
instead of 12 when sending:
<?xml version="1.0" encoding="UTF-8"?>
<result>
<sensor_id>12</sensor_id>
</result>
to myTopic topic.
12 is returned, when I create standalone application or create camel
context using spring inside osgi budnel. Anyone know why creating own
camel context inside osgi causes so strange behaviour?
I'm using following configuration:
ka...@root> version
Major 2
Micro 1
Minor 1
Qualifier
[installed ] [2.5.0 ] camel repo-0
[installed ] [2.5.0 ] camel-core repo-0
[installed ] [2.5.0 ] camel-spring repo-0
[installed ] [2.5.0 ] camel-jms repo-0