リクエスト本文で JSON を使用して HTTP POST を実行する方法を理解するのに苦労しています。私のフローのサンプルを以下に掲載します。ポーリング時に JSON を生成する POJO をポーリングするポーラーがあります。次に、この JSON を取得し、HTTP POST を本文に入れて外部 REST サービスに送信する必要があります。Apache HTTP クライアントに相当するのは、文字列エンティティを JSON メッセージに設定し、ヘッダーのコンテンツ タイプを application/json に設定することです。Mule でこれを行うにはどうすればよいですか? よろしくお願いします。
<flow name="flow1" doc:name="flow1">
<poll frequency="100000">
<logger message="starting" level="INFO" doc:name="Logger"/>
</poll>
<component class="JavaJSONGeneratorClass" doc:name="ReferenceToJavaClass"/>
<echo-component doc:name="Echo"/>
<http:outbound-endpoint exchange-pattern="request-response" host="xxx.xxx.xxx.xxx" port="8080" path="path/to/service" doc:name="HTTP"/>
<logger level="INFO" doc:name="Logger"/>
<byte-array-to-string-transformer doc:name="Byte Array to String"/>
<echo-component doc:name="Echo"/>
</flow>
Java クラスは次のようになります。
import java.io.Serializable;
import org.mule.api.MuleEventContext;
import org.mule.api.MuleMessage;
import org.mule.api.lifecycle.Callable;
import org.mule.module.client.MuleClient;
public class JSONGenerator implements Callable, Serializable
{
@Override
public Object onCall(MuleEventContext eventContext) throws Exception
{
String json = generateSomeJson(some_parameter);
return json;
}
}