Невозможно преобразовать http-ответ в мул

У меня есть рабочий процесс мула, который вызывает http-сервис oozies для запуска задания, но мне нужно сохранить идентификатор задания, выданный oozie, в базе данных. Я реализовал это, но получаю исключение после преобразования ответа от Oozie.

Невозможно применить трансформацию. Полезная нагрузка — ReleaseInputStream.

<mule xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:quartz="http://www.mulesoft.org/schema/mule/quartz" xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:vm="http://www.mulesoft.org/schema/mule/vm" xmlns:test="http://www.mulesoft.org/schema/mule/test"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/quartz 

http://www.mulesoft.org/schema/mule/quartz/current/mule-quartz.xsd
http://www.mulesoft.org/schema/mule/test http://www.mulesoft.org/schema/mule/test/3.6/mule-test.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.6/mule.xsd
http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/3.6/mule-vm.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/3.6/mule-http.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd"
    version="EE-3.5.2">
<object-to-string-transformer name="httptoobj" />
            <http:http-response-to-object-transformer name="httptostring" />

<flow name="polling" doc:name="polling">
    <quartz:inbound-endpoint repeatInterval="3000"
        startDelay="3000" jobName="couchbasePoller" doc:name="Quartz">
        <quartz:event-generator-job />
    </quartz:inbound-endpoint>
    <component doc:name="Java">
        <singleton-object
            class="com.xyz.alertcampaign.appworkflow.CouchbasePoller" />
    </component>

    <vm:outbound-endpoint exchange-pattern="request-response"
        path="oozieQueue" doc:name="Trigger workflow" />

</flow>
<flow name="oozie-workflow-manager" doc:name="oozie-workflow-manager">
    <vm:inbound-endpoint exchange-pattern="request-response"
        path="oozieQueue" doc:name="VM" />
    <http:outbound-endpoint exchange-pattern="request-response"  address="http://localhost:8080" responseTransformer-refs="httptostring"    doc:name="HTTP" />  

        <object-to-string-transformer />
    <component doc:name="Java">
        <singleton-object
            class="com.xyz.alertcampaign.appworkflow.JobUpdater" />
    </component>
</flow>


person Arun George    schedule 01.03.2015    source источник
comment
Какое исключение вы получаете ??   -  person Anirban Sen Chowdhary    schedule 01.03.2015
comment
Не могли бы вы опубликовать всю трассировку стека? Спасибо.   -  person afelisatti    schedule 01.03.2015
comment
Получил работу. С Мулом проблем нет.   -  person Arun George    schedule 02.03.2015


Ответы (1)


Вы применяете входной поток к строковому преобразователю дважды:

responseTransformer-refs="httptostring"

и тут

<object-to-string-transformer />

Также я предполагаю, что у вас есть неправильный трансформатор с именем httptostring. Удалите его или просто удалите файл responseTransformer-refs.

person Víctor Romero    schedule 01.03.2015
comment
Спасибо за это. На самом деле мне удалось решить исключение, но реальная проблема заключалась в том, что фиктивный http-сервер не писал новую строку перед полезной нагрузкой. Мул работает отлично. - person Arun George; 02.03.2015