2016-03-30 10 views
0

Ich habe ein Problem mit der Transformation Nachricht Komponente und mule ESB, die ich nicht verstehe. Ich habe einen einfachen Fluss, der gut funktioniert, am Anfang ist es Http Endpunkt und am Ende ist es Transform Nachricht Komponente wandelt einen JSON in einen anderen.Mule esb und Transform Nachricht (Wave-Transformationskomponente)

Jetzt, wenn ich versuche Nutzlast zu speichern, bevor Nachricht an Variable umwandeln und dann setzen Nutzlast auf diese Variable, I Ausnahme erhalten auf Nachrichtenkomponente Transformation: Typenkonflikt gefunden: Name,: string erforderlich: Name,: Objekt (com.mulesoft.weave.engine.ast.dynamic.DynamicDispatchException) com.mulesoft.weave.engine.ast.dynamic.DynamicDispatchNode: 65 (null)

Hier ist ein Fluss, der arbeitet, und darunter ist die Strömung das geht nicht. Fluss, das funktioniert:

<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> 

Fluss, die nicht>

<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> 

funktioniert Wenn ich Logger Nutzlast vor der Transformation zu protokollieren setzen, ist es das gleiche in beiden Strömungen .... Kann jemand Sag mir, was mache ich falsch?

Dank Ivan.

Antwort

1

Da die Nutzlast fehlt Mime-Typ erhalten Sie den Fehler verwenden Sie die unten xml, ich habe getestet und es funktioniert gut. <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

Dies hat den Job, danke – Gewra