У меня есть некоторые сомнения относительно того, как прокси-сервисы VFS работают на WSO2 ESB 4.8.0.
Я подготовил следующий тестовый сервис:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="testvfs"
transports="vfs"
statistics="enable"
trace="enable"
startOnLoad="true">
<target>
<inSequence>
<log level="full">
<property name="test" value="before error"/>
</log>
<dbreport>
<connection>
<pool>
<password>admin</password>
<user>admin</user>
<url>adfs</url>
<driver>dfsa</driver>
</pool>
</connection>
<statement>
<sql>select 1;</sql>
</statement>
</dbreport>
<log level="full">
<property name="test" value="after error"/>
</log>
</inSequence>
</target>
<parameter name="transport.PollInterval">1</parameter>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<parameter name="transport.vfs.FileURI">file://C:\testvfs\in</parameter>
<parameter name="transport.vfs.MoveAfterProcess">file://C:\testvfs\out</parameter>
<parameter name="transport.vfs.MoveAfterFailure">file://C:\testvfs\original</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.csv</parameter>
<parameter name="transport.vfs.ContentType">text/plain</parameter>
<description/>
</proxy>
Должно:
- дождитесь появления файла в C: \ testvfs \ in
- обработать файл (в моем примере выполнить последовательность log-dbreport-log)
- если обработка прошла успешно, переместите файл в C: \ testvfs \ out
- если произошел сбой, файл должен перейти в папку C: \ testvfs \ original
По крайней мере, так я понимаю транспорт VFS и его параметры.
Я намеренно испортил посредник dbreport (неверный URL-адрес и класс драйвера). Я ожидал, что каждый ввод будет перенесен в каталог \ original, так как обработка всегда терпит неудачу.
Вместо этого файл попадает в каталог \ out.
Я что-то упустил или это ошибка в 4.8.0?