MULE-ESB-如何设置出站邮件的标题

时间:2018-07-10 22:04:42

标签: header mule esb outbound

我正在尝试设置出站邮件的标头值。 我可以在调试模式下在http.headers中看到这些值。但是,它没有显示邮递员的标题。

下面是代码段 如您所见,我尝试使用两种不同的方式设置标头

{code}

     **<set-property propertyName="http.headers.code" value="C01" doc:name="headerCode"/>**
    <set-payload value="{&#xA;   &quot;coord&quot;: {&#xA;   &quot;lon&quot;: -0.13,&#xA;   &quot;lat&quot;: 51.51&#xA;     },&#xA;   &quot;main&quot;: {&#xA;   &quot;temp&quot;: 290.24,&#xA;   &quot;pressure&quot;: 1016,&#xA;   &quot;humidity&quot;: 77,&#xA;   &quot;temp_min&quot;: 288.15,&#xA;   &quot;temp_max&quot;: 292.15&#xA;        },&#xA;   &quot;id&quot;: 2643743,&#xA;    &quot;name&quot;: &quot;London&quot;,&#xA;     &quot;cod&quot;: 200&#xA;  }" doc:name="Set Payload"/>


   **<message-properties-transformer doc:name="Message Properties">
    <add-message-property key="http.headers.id"   value="ID01" />
    </message-properties-transformer>**
    <logger message="header-property logger" level="INFO" doc:name="Logger"/>
</flow>

{code}

附带的调试屏幕截图 Debugging screenshot

postman collection screenshot 我期望看到标题中的值。但是没有显示 任何人都可以阐明这一点。 谢谢和问候 尼维

1 个答案:

答案 0 :(得分:2)

在Mule中设置出站属性时(我的经验是3.8及更高版本),它们将默认为HTTP标头,因此您无需包括“ http.headers”。在您的属性元素中,只有您要添加的标题的名称。

例如如果您的set-property元素是:

<set-property propertyName="id" value="ID01" doc:name="Add ID Header" />

然后,在调用服务时,它将添加“ id”作为HTTP响应标头。

我的整个流程是:

<flow name="testFlow">
  <http:listener config-ref="HTTP_Listener_Configuration"
    path="/test" doc:name="HTTP" />
  <set-payload
    value="{&#xA;   &quot;coord&quot;: {&#xA;   &quot;lon&quot;: -0.13,&#xA;   &quot;lat&quot;: 51.51&#xA;     },&#xA;   &quot;main&quot;: {&#xA;   &quot;temp&quot;: 290.24,&#xA;   &quot;pressure&quot;: 1016,&#xA;   &quot;humidity&quot;: 77,&#xA;   &quot;temp_min&quot;: 288.15,&#xA;   &quot;temp_max&quot;: 292.15&#xA;        },&#xA;   &quot;id&quot;: 2643743,&#xA;    &quot;name&quot;: &quot;London&quot;,&#xA;     &quot;cod&quot;: 200&#xA;  }"
    doc:name="Set Payload" />
  <set-property propertyName="id" value="ID01" doc:name="Add ID Header" />
</flow>

当我向该流发送请求时,我按预期收到HTTP标头:

curl -v http://localhost:8091/test
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8091 (#0)
> GET /test HTTP/1.1
> Host: localhost:8091
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 200
< id: ID01  <=============
< Content-Length: 244
< Date: Tue, 10 Jul 2018 22:44:51 GMT
<
{
   "coord": {
   "lon": -0.13,
   "lat": 51.51
     },
   "main": {
   "temp": 290.24,
   "pressure": 1016,
   "humidity": 77,
   "temp_min": 288.15,
   "temp_max": 292.15
        },
   "id": 2643743,
    "name": "London",
     "cod": 200
}  

希望有帮助!

约翰逊。