File io 驼峰FTP中驼峰exchange正文中的文件对象为空

File io 驼峰FTP中驼峰exchange正文中的文件对象为空,file-io,null,unmarshalling,jaxb2,camel-ftp,File Io,Null,Unmarshalling,Jaxb2,Camel Ftp,基于FTP2组件的路由定义很简单 Endpoint[sftp://server.com:22//path/to/file/?consumer.delay=900000&password=xxxxxx&username=user] 我正在尝试从FTP文件夹读取文件 JAXBContext jaxBContext = JAXBContext.newInstance(ObjectFactory.class); Unmarshaller unmarshall

基于FTP2组件的路由定义很简单

        Endpoint[sftp://server.com:22//path/to/file/?consumer.delay=900000&password=xxxxxx&username=user]
我正在尝试从FTP文件夹读取文件

   JAXBContext jaxBContext = JAXBContext.newInstance(ObjectFactory.class);
   Unmarshaller unmarshaller = jaxBContext.createUnmarshaller();
   File authBatchFile = exchange.getIn().getBody(File.class);
   AuthorizationFeed batchAuthFeed = (AuthorizationFeed) JAXBIntrospector
            .getValue(unmarshaller.unmarshal(authBatchFile)); 
交易所拥有它应该拥有的一切

    Body                [Body is file based: RemoteFile[fileName.txt]]
标头还显示文件的大小CamelFileLength=81612。然而,在交换跟踪之后,我得到了下面的异常

  java.lang.IllegalArgumentException: The value for the "java.io.File" parameter cannot be null.
at com.ibm.xml.xlxp2.jaxb.unmarshal.AbstractUnmarshallerImpl.reportNullParameter(AbstractUnmarshallerImpl.java:180)
at com.ibm.xml.xlxp2.jaxb.unmarshal.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:72)
at com.wellpoint.clihub.hie.um.camel.processor.BatchCFFProcessor.process(BatchCFFProcessor.java:47)

我通过添加路由定义找到了解决方案

&localWorkDirectory=/tmp. 

这样,它不认为它是远程文件,并认为它是java. Io.file。我认为,在处理远程文件时,Camel应该将其作为默认功能。根据他们的文件

上面的路由非常高效,因为它避免了将整个文件内容读入内存。它将远程文件直接下载到本地文件流。然后将java.io.File句柄用作Exchange主体


我通过添加路由定义找到了解决方案

&localWorkDirectory=/tmp. 

这样,它不认为它是远程文件,并认为它是java. Io.file。我认为,在处理远程文件时,Camel应该将其作为默认功能。根据他们的文件

上面的路由非常高效,因为它避免了将整个文件内容读入内存。它将远程文件直接下载到本地文件流。然后将java.io.File句柄用作Exchange主体


我通过添加路由定义找到了解决方案

&localWorkDirectory=/tmp. 

这样,它不认为它是远程文件,并认为它是java. Io.file。我认为,在处理远程文件时,Camel应该将其作为默认功能。根据他们的文件

上面的路由非常高效,因为它避免了将整个文件内容读入内存。它将远程文件直接下载到本地文件流。然后将java.io.File句柄用作Exchange主体


我通过添加路由定义找到了解决方案

&localWorkDirectory=/tmp. 

这样,它不认为它是远程文件,并认为它是java. Io.file。我认为,在处理远程文件时,Camel应该将其作为默认功能。根据他们的文件

上面的路由非常高效,因为它避免了将整个文件内容读入内存。它将远程文件直接下载到本地文件流。然后将java.io.File句柄用作Exchange主体