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

Reply via email to