コンテンツ タイプとして「text/xml」を期待する HTTP エンドポイントを含むフローがあります。このフローは、RESTClient などを使用してヒットすると正しく機能します。
<http:inbound-endpoint exchange-pattern="request-response" host="${web.rsc.host}" port="${web.rsc.port}" path="Quote/1_0/submit" doc:name="HTTP" mimeType="text/xml"/>
ただし、JUnit テストを機能させることができません。
テストの簡素化されたバージョンは次のようになります。
@Test
public void test5() throws MuleException
{
MuleClient client = muleContext.getClient();
MuleMessage message = new DefaultMuleMessage( "", muleContext );
String payload = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><quote><value>dummy</value></quote>";
message.setProperty( "http.method", "POST", PropertyScope.OUTBOUND );
message.setProperty( "http.content-type", "text/xml", PropertyScope.OUTBOUND );
message.setPayload( payload );
MuleMessage reply = client.send( "http://localhost:8081/Quote/1_0/submit", message, null, 5000 );
assertNotNull( reply );
assertNotNull( reply.getPayload() );
assertEquals( reply.getPayload(), "200" );
}
これが実行されると、受信エンドポイントで Mule によって例外がスローされます。
テスト メッセージにコンテンツ タイプを設定するには何が必要ですか?