Проблема запроса-ответа с потоком мулов

В этом потоке входящий HTTP настроен с запросом-ответом. Но я все еще не получаю ответ, так как он направляется в исходящий файл. Как получить ответ для конечной точки HTTP, а также направить ответ на исходящий файл.

<flow name="helloFlow1" doc:name="helloFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="9095" doc:name="HTTP"/>
    <custom-transformer class="com.uk.MyTransformer" doc:name="Java"/>
    <component class="com.uk.MyComponent" doc:name="Java"/>
    <echo-component doc:name="Echo"/>
    <file:outbound-endpoint path="C:\" outputPattern="file#[function:datestamp]" doc:name="File"/>


person Udhay    schedule 07.03.2012    source источник
comment
При использовании для ведения журнала предпочтите обработчик сообщений ‹logger /› вместо ‹echo-component /›.   -  person David Dossot    schedule 08.03.2012


Ответы (1)


Вы не получаете ответ, потому что ничто не создает его: file:outbound-endpoint является односторонним по своей природе и не генерирует событие ответа.

Предполагая, что вы хотите, чтобы тот же контент, записанный в файл, также возвращался вызывающей стороне конечной точки HTTP, один из вариантов состоит в «отсоединении» записи в файл в параллельном асинхронном потоке, чтобы основной поток возвращал свое текущее значение вызывающей стороне. :

<flow name="helloFlow1" doc:name="helloFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="9095" doc:name="HTTP"/>
    <custom-transformer class="com.uk.MyTransformer" doc:name="Java"/>
    <component class="com.uk.MyComponent" doc:name="Java"/>
    <echo-component doc:name="Echo"/>
    <async>
        <file:outbound-endpoint path="C:\" outputPattern="file#[function:datestamp]" doc:name="File"/>
    </async>
</flow>
person David Dossot    schedule 07.03.2012
comment
В соответствии с этим примером я должен получить ответ для входящей службы в браузере/SoapUI, а также тот же ответ должен быть направлен в конечную точку исходящего файла. Но почему я не получил ответ для конечной точки входящего HTTP? mulesoft.org/documentation/display/MULE3EXAMPLES/ - person Udhay; 08.03.2012
comment
Последний элемент в вашем потоке — это исходящая конечная точка только для входа, поэтому здесь останавливается buck, т. е. после вызова этой конечной точки больше нет сообщения для обратного направления вызывающей стороне. Итак, вы хотите, чтобы результат вызова компонента был записан в файл и возвращен вызывающей стороне? Это оно? - person David Dossot; 08.03.2012
comment
Предполагая, что ваш ответ «да», я уже изменил свой ответ. - person David Dossot; 08.03.2012
comment
Большое спасибо, это решение, которое я хотел. - person Udhay; 09.03.2012