1

コンテンツ タイプとして「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 によって例外がスローされます。

テスト メッセージにコンテンツ タイプを設定するには何が必要ですか?

4

2 に答える 2

1

HashMapプロパティの作成

Map<String, String> properties = new HashMap<String, String>();
properties.add("Content-Type", "text/xml");

入れてclient.send

MuleMessage reply = client.send( "http://localhost:8081/Quote/1_0/submit", payload, properties);
于 2013-02-14T15:34:58.490 に答える
0

これを試して。

 message.setProperty("Content-Type", "text/xml", PropertyScope.OUTBOUND );
于 2013-02-15T14:28:46.937 に答える