私の要件は、受信エンドポイントでファイルを処理することです
ユース ケース 1 - ファイルの処理の失敗
検証エラーなどの例外が原因でファイルの処理が失敗した場合は、ファイルをソースとは別の別のディレクトリに移動します。ソース ディレクトリの元のファイルを削除します。
ユース ケース 2 - 処理の成功
ファイルの処理が成功したら、ファイルをソース ディレクトリに残します。
次のことを試しました。ファイルは失敗したディレクトリに移動されますが、ソース ファイルはユース ケース 1 で必要なように削除されません。
<flow name="InValidFlow1" doc:name="InValidFlow1">
<file:inbound-endpoint responseTimeout="10000" doc:name="File" path="c:\filelanding\in2" pollingFrequency="100" connector-ref="input_2" moveToDirectory="c:\filelanding\in2" moveToPattern="#[header:originalFilename]-#[function:dateStamp]-Processed">
<file:filename-regex-filter pattern="(?!.*Processed|.*Failed)(.*)" caseSensitive="false"/>
</file:inbound-endpoint>
<test:component waitTime="20000"></test:component>
<custom-transformer class="com.XXX.XXX.service.ExceptionService" doc:name="Java"/>
<file:outbound-endpoint responseTimeout="10000" doc:name="File" path="c:\filelanding\out2" connector-ref="output_2"/>
<exception-strategy ref="fot_exception_strategy_single" doc:name="Reference Exception Strategy"/>
</flow>
<file:connector name="error_output_1" outputPattern="#[header:originalFilename]" doc:name="File"/>
<choice-exception-strategy name="fot_exception_strategy_single">
<catch-exception-strategy when="#[exception.causedBy(java.lang.RuntimeException)]" doc:name="Catch Exception Strategy">
<!-- Mark the status as failed-->
<file:outbound-endpoint connector-ref="error_output_1" responseTimeout="10000" doc:name="File" path="c:\filelanding\backup2" outputPattern="#[header:originalFilename]-#[function:dateStamp]-Failed" >
</file:outbound-endpoint>
</catch-exception-strategy>
</choice-exception-strategy>
この動作を実現するには、既存のミュール機能をオーバーライドする必要がありますか? 失敗時のソース フォルダーにファイルを含めないでください。宛先フォルダーには、「失敗」ステータスでマークされたファイルが必要です。