Dear Camel community,
I've been facing a weird problem with Camel (3.21.0) and my development process
(in Windows) and deployment (in Linux).
I dont have any isses at all while testing / working on Windows. When I deploy
the routes on the server, I start getting these exceptions.
--------------------------------------
org.apache.camel.RuntimeCamelException:
org.apache.camel.NoTypeConversionAvailableException: No type converter
available to convert from type: java.lang.String to the required type:
org.w3c.dom.Document
at
org.apache.camel.RuntimeCamelException.wrapRuntimeCamelException(RuntimeCamelException.java:51)
at
org.apache.camel.language.xpath.XPathBuilder.getDocument(XPathBuilder.java:1309)
at
org.apache.camel.language.xpath.XPathBuilder.doInEvaluateAs(XPathBuilder.java:1054)
at
org.apache.camel.language.xpath.XPathBuilder.evaluateAs(XPathBuilder.java:931)
at
org.apache.camel.language.xpath.XPathBuilder.evaluate(XPathBuilder.java:898)
at
org.apache.camel.language.xpath.XPathBuilder.evaluate(XPathBuilder.java:213)
at
org.apache.camel.model.language.ExpressionDefinition.evaluate(ExpressionDefinition.java:239)
at
org.apache.camel.support.builder.ExpressionBuilder$50.evaluate(ExpressionBuilder.java:1537)
at
org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:45)
at
org.apache.camel.processor.SetHeaderProcessor.process(SetHeaderProcessor.java:48)
at
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:477)
at
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181)
at
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:165)
at
org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392)
at
org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:492)
at
org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:245)
at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:206)
at
org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:202)
at
org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:116)
at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at
java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
--------------------------------------
As background, I receive an XML file, then it will be tokenized and then
splitted into smaller XML files. The code looks something like this:
from("file:folder?fileName={{exportFile}}&noop=true")
.split()
.tokenizeXML("object")
.setHeader("CamelFileName",
xpath("//object/objectid/text()").append(".xml"))
.setHeader("CamelFileContentType", simple("text/xml"))
.setBody(simple("<?xml version='1.0'?>${body}"))
.to("file:folder/exportFiles");
.
.
.
The next steps and routes wont start, this is where the Exception happens.
I set also before the routes the following variables:
context.getGlobalOptions().put("CamelJacksonEnableTypeConverter",
"true");
context.getGlobalOptions().put("CamelJacksonTypeConverterToPojo",
"true");
PropertiesComponent pc = new PropertiesComponent();
pc.setLocation("file:./config.properties");
context.setPropertiesComponent(pc);
context.getStreamCachingStrategy().setSpoolEnabled(true);
context.getStreamCachingStrategy().setSpoolDirectory("./download/tmp");
context.getStreamCachingStrategy().setSpoolThreshold(64 * 1024);
context.getStreamCachingStrategy().setBufferSize(16 * 1024);
context.setStreamCaching(true);
Because of the transforming objects I have (without this the (un)marshalling
wont work.
I tested these routes and somehow can't find anything that helps. POM has also
the dependencies I need. Why wont it work on a Linux server?
Thanks in advance for your time and advice with this problem.
Best regards,
Jaime Penagos