2016-12-21 6 views
0

JSONペイロード(ペイロードタイプはjava.lang.String)と非同期フローがあり、HTTPリクエストコネクタへのPOSTを実行しようとしていますが、400エラーが発生しています。私がデバッガでアプリケーションを実行すると、ペイロードタイプは、私が問題と思うJSON文字列からorg.glassfish.grizzly.utils.BufferInputStreamに変わります。Mule 3.7のHTTPリクエストConnector Payload(POST)

enter image description here

どのように私はこの問題を解決するのですか?あなたはDataweave変圧器を使用する場合は、JAVAの出力を使用するタイプの、そのオブジェクトを返します

おかげ

+0

いくつかのコードスニペットを投稿できますか? – user1211

+0

コードを見つけてください: – ROA

答えて

0

<flow name="createFlow"> 
 
     <vm:inbound-endpoint exchange-pattern="one-way" path="createApi" connector-ref="VMConfiguration" doc:name="VM"/> 
 
     <enricher doc:name="Message Enricher" source="payload" target="#[flowVars.createApiPayload]"> 
 
      <flow-ref name="createBomCollection" doc:name="createBomCollection"/> 
 
     </enricher> 
 
     <logger message="Payload after Create Api Call: #[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Logger"/> 
 
     <set-payload value="#[message.payload]" mimeType="application/json" doc:name="Set Payload"/> 
 
     <dw:transform-message doc:name="Transform Message"> 
 
      <dw:set-payload><![CDATA[%dw 1.0 
 
%output application/json 
 
--- 
 
{ 
 
    (createApi: payload.createApi) when (payload.createApi != null) 
 
\t 
 
}]]></dw:set-payload> 
 
     </dw:transform-message> 
 
    </flow> 
 
    <sub-flow name="createApiCollection"> 
 
     <set-session-variable variableName="retryCount" value="#[new java.util.concurrent.atomic.AtomicInteger(0)]" doc:name="initialize retryCount"/> 
 
     <logger message="Payload before system Post: #[message.payload]" level="INFO" doc:name="Logger"/> 
 
     <http:request config-ref="System_HTTP_Request_Configuration" path="/bom1" method="POST" doc:name="HTTP"> 
 
      <http:request-builder> 
 
       <http:header headerName="Content-Type" value="application/json"/> 
 
       <http:header headerName="requestID" value="#[sessionVars.requestID]"/> 
 
       <http:header headerName="transactionID" value="#[sessionVars.transactionID]"/> 
 
       <http:header headerName="quoteID" value="#[sessionVars.quoteID]"/> 
 
       <http:header headerName="operationName" value="#[sessionVars.operationName]"/> 
 
      </http:request-builder> 
 
     </http:request> 
 
</sub-flow>

+0

あなたのFlowReferenceであなたが呼び出します:createBomCollection 私が見るサブフローはcreateApiCollectionだけです。あなたが使っているglobal.xml HTTPコネクタを投稿すると簡単にテストできます。 – Alberici

+0

将来のための勧告質問あなたの質問を編集し、そこにコードを追加してください!あなた自身の質問に答える代わりに。 – Alberici

0

"org.glassfish.grizzly.utils.BufferInputStreamは"、例えば:

%dw 1.0 
%output application/java 
--- 
payload 

Dataweave変換後にJSONにオブジェクトを追加してみてくださいation!

<object-to-string-transformer doc:name="Object to String"/> 
関連する問題