2016-03-30 2 views
0

У меня проблема с компонентом сообщения преобразования и мулом ESB, который я не понимаю. У меня есть простой поток, который отлично работает, в начале это конечная точка Http, а в конце это компонент Transform message, преобразует один JSON в другой.Сообщение Mule esb и Transform (компонент волнового преобразования)

Теперь, когда я пытаюсь сохранить полезную нагрузку, прежде чем преобразовать сообщение в переменную и затем установить полезную нагрузку к этому переменному, я получаю исключение на преобразование компонент сообщения: Несоответствия типа найдено: имя,: строка требуется: имя,: объект (com.mulesoft.weave.engine.ast.dynamic.DynamicDispatchException) com.mulesoft.weave.engine.ast.dynamic.DynamicDispatchNode: 65 (нуль)

Вот поток, который работает, и ниже, что это поток это не работает. Flow, который работает:

<mule xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" 
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd"> 
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8085" doc:name="HTTP Listener Configuration"/> 
    <flow name="testFlow"> 
     <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"/> 
     <byte-array-to-string-transformer doc:name="Byte Array to String"/> 
     <dw:transform-message metadata:id="b8a77df6-4692-4c52-b572-b6a175e7467e" doc:name="Transform Message"> 
      <dw:set-payload><![CDATA[%dw 1.0 
%output application/json 
--- 
{ 
    id: payload.transfer-id, 
    created-record-status: 'accepter' 
}]]></dw:set-payload> 
     </dw:transform-message> 
    </flow> 
</mule> 

потока, который не работает>

<mule xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" 
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd"> 
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8085" doc:name="HTTP Listener Configuration"/> 
    <flow name="testFlow"> 
     <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"/> 
     <byte-array-to-string-transformer doc:name="Byte Array to String"/> 
     <set-variable variableName="OriginalPayload" value="#[payload]" doc:name="Variable"/> 
     <set-payload value="#[flowVars.OriginalPayload]" doc:name="Set Payload"/> 
     <dw:transform-message metadata:id="b8a77df6-4692-4c52-b572-b6a175e7467e" doc:name="Transform Message"> 
      <dw:set-payload><![CDATA[%dw 1.0 
%output application/json 
--- 
{ 
    id: payload.transfer-id, 
    created-record-status: 'accepter' 
}]]></dw:set-payload> 
     </dw:transform-message> 
    </flow> 
</mule> 

Когда я поставил регистратор для регистрации полезной нагрузки до преобразования, это одно и то же в обоих потоках .... Может кто-то скажи мне, что я делаю неправильно?

Thanks Ivan.

ответ

1

Поскольку набор полезной нагрузки отсутствует тип MIME, вы получаете ошибку, используя нижеследующий xml, я тестировал и работаю нормально. <set-payload value="#[flowVars.OriginalPayload]" doc:name="Set Payload" mimeType="application/json"/>

<mule xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" 
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd"> 
    <http:listener-config name="HTTP_Listener_Confi" host="localhost" port="8085" doc:name="HTTP Listener Configuration"/> 
    <flow name="testFlow"> 
     <http:listener config-ref="HTTP_Listener_Confi" path="/test" doc:name="HTTP"/> 
     <byte-array-to-string-transformer doc:name="Byte Array to String"/> 
     <logger message="#[payload]" level="INFO" doc:name="Logger"/> 
     <set-variable variableName="OriginalPayload" value="#[payload]" doc:name="Variable"/> 
     <set-payload value="#[flowVars.OriginalPayload]" doc:name="Set Payload" mimeType="application/json"/> 
     <dw:transform-message metadata:id="b8a77df6-4692-4c52-b572-b6a175e7467e" doc:name="Transform Message"> 
      <dw:set-payload><![CDATA[%dw 1.0 
%output application/json 
--- 
{ 
    id: payload.transfer-id, 
    created-record-status: 'accepter' 
}]]></dw:set-payload> 
     </dw:transform-message> 
    </flow> 
</mule> 
+0

Это сделало эту работу, спасибо – Gewra

Смежные вопросы