All,

I have the following code snippet and exception:

I have a route that has a jetty enpoint which accessed, starts a process
which builds an excel file and stores in in a 
directory.  The next component, file, should pick the file up and pass it to
the ftp component, transferring it to a remote server.

Everything seems to work up to the ftp component.  The .xls files are being
generated to in the X:\xxx\reports\finished\ directory.

Any assistance would be greatly appreciated!

*public class ReportRouteBuilder extends RouteBuilder {

        public void configure() throws Exception {

                final Endpoint jettyEndPoint = configureSslForJetty();
                
                from(jettyEndPoint)
                                .process(new Processor() {

                                        @Override
                                        public void process(Exchange exchange) 
throws Exception {
                                                /*
                                                 * code to generate .xls 
document and store on the local file system
                                                 */
                                                .
                        .
                        .
                                                
exchange.getOut().setHeader(Exchange.FILE_NAME, outputFileName);
                                                
exchange.getOut().setHeader("status", table.getStatus());
                                                
exchange.getOut().setHeader("CamelFileName",table.getFileName());
                                                
exchange.getOut().setHeader("CamelFileNameOnly",table.getFileName());
                                                
exchange.getOut().setHeader("CamelFileAbsolute","true");
                                        
exchange.getOut().setHeader("CamelFileAbsolute","X:\\xxx\\reports\\finished\\");
                                        
exchange.getOut().setHeader("CamelFilePath","X:\\xxx\\reports\\finished\\"+currentPivotTable.getFileName());
                                                
exchange.getOut().setHeader("CamelFileParent","X:\\xxx\\reports\\");
    .
    .
    .
                                                }
                                
}).choice().when(header("status").isEqualTo("success")).
                        
from("file:X:\\xxx\\reports\\finished?fileExist=Ignore&doneFileName=${file:name}.
                                done&delete=true&maxMessagesPerPoll=1")
                                
to("ftp://ccc.xxx.1.2:21/?username=userx&password=abcd&binary=true";)
                                ;
        }
        
        
        private Endpoint configureSslForJetty() 
        .
        .
        .
        /*
         * SSL code
         */
        return (Endpoint)
jettyComponent.createEndpoint("jetty:https://0.0.0.0:1111/exportXls";);
        }
        
}*

        Id                  ID-ABC-LT-54988-1443747180739-0-1
        ExchangePattern     InOut
        Headers             {CamelFileAbsolute=X:\xxx\reports\finished,
CamelFileName=abc.xls, 
                                  CamelFileNameOnly=abc.xls, 
CamelFileNameProduced=
                                    X:\xxx\reports\finished\abc.xls,
CamelFileParent=X:\xxx\reports\, 
                                CamelFilePath=X:\xxx\reports\finished\abc.xls, 
CamelRedelivered=false, 
                               CamelRedeliveryCounter=0, status=success}
        BodyType            null
        Body                [Body is null]

org.apache.camel.component.file.GenericFileOperationFailedException: Cannot
write null body to file: abc.xls
        at
org.apache.camel.component.file.remote.FtpOperations.doStoreFile(FtpOperations.java:560)
        at
org.apache.camel.component.file.remote.FtpOperations.storeFile(FtpOperations.java:522)
        at
org.apache.camel.component.file.GenericFileProducer.writeFile(GenericFileProducer.java:277)
        at
org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:165)
        at
org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:56)
        at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
        at
org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:157)
        at
org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:304)
        at 
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:152)
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
        at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448)
        at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
        at
org.apache.camel.component.jetty.CamelContinuationServlet.service(CamelContinuationServlet.java:162)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
        at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)
        at
org.eclipse.jetty.servlets.MultiPartFilter.doFilter(MultiPartFilter.java:136)
        at
org.apache.camel.component.jetty.CamelFilterWrapper.doFilter(CamelFilterWrapper.java:43)
        at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1467)
        at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
        at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
        at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
        at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:370)
        at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
        at
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
        at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SslConnection.handle(SslConnection.java:196)
        at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
        at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
        at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:745)



--
View this message in context: 
http://camel.465427.n5.nabble.com/Cannot-write-null-body-to-file-using-ftp-component-tp5772164.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to