我有一个带有 HTTP 端点的流,它期望“text/xml”作为内容类型。当我使用 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 在入站端点上抛出异常:“消息包含 MIME 类型“text/plain”,而预期为“text/xml”。”
在测试消息上设置内容类型需要什么?