我與類型轉換掙扎在我的駱駝航線處理FTP文件。我的路線是這樣的(在Spring DSL):駱駝FTP路徑和文件類型轉換器
<route id="processIncomingFtpFile" errorHandlerRef="parkingCitErrHandler">
<from uri="{{ftp.parkingcit.input.path}}"/>
<bean ref="ftpZipFileHandler"/>
<unmarshal ref="bindyCsvFormat"/>
<bean ref="parkingTicketsHandler"/>
<split>
<simple>${body}</simple>
<marshal ref="jaxbFormatter"/>
<convertBodyTo type="java.io.File"/>
<to uri="{{ftp.parkingcit.output.path}}"/>
</split>
</route>
而且我的處理程序的簽名看起來是這樣的:
public File handleIncomingFile(File incomingfile)...
然而,我們得到以下類型轉換問題:
org.apache.camel.InvalidPayloadException: No body available of type: java.io.File but has value: RemoteFile[test.zip] of type: org.apache.camel.component.file.remote.RemoteFile on: test.zip. Caused by: No type converter available to convert from type: org.apache.camel.component.file.remote.RemoteFile to the required type: java.io.File with value RemoteFile[test.zip]. Exchange[test.zip]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: org.apache.camel.component.file.remote.RemoteFile to the required type: java.io.File with value RemoteFile[test.zip]]
我的問題是:我應該能夠處理內存中的我的FTP文件,但沒有明確告訴駱駝它寫入磁盤,與類型轉換器做的工作自動地在後臺爲我後面?或者是什麼,我試圖做毫無意義的,因爲我的處理程序想要一個java.io.File中作爲輸入參數,即我必須將數據寫入磁盤這個工作?
現在看來很明顯,你指出了。謝謝。 –