WSO2 ESB打印所有TRANSPORT_HEADERS

时间:2017-05-23 10:45:04

标签: logging wso2 wso2esb

我可以在WSO2 ESB中使用以下代码打印单个传输头:

<log level="custom">
    <property name="oneHeader" expression="$trp:FILE_NAME"/>
</log>

但我需要打印所有可用的传输属性。有一个名为&#34; [TRANSPORT_HEADERS] [1]&#34;的axis2属性,但是在打印此属性时,它始终为空。

<log level="custom">
    <property name="allHeaders" expression="get-property('axis2','TRANSPORT_HEADERS')"/>
</log>

因为我不知道所有标题名称,所以我需要知道如何打印所有标题?

3 个答案:

答案 0 :(得分:1)

我不知道如何打印所有传输属性,但是如果在序列中设置断点并按照https://docs.wso2.com/display/EI611/Debugging+Mediation中的说明启用调试,则可以在&#中找到所有传输属性39;变量&#39;标签。Variables tab

答案 1 :(得分:0)

我们无法使用属性中介器记录此属性,因为这是axis2-transports中的内部JAVA映射。因此,我们可能需要为此使用类调解器。

以下是一个示例。

您可以将class mediator jar直接放在EI_HOME / lib或ESB_HOME / repository / components / lib中,并使用以下配置

<class name="org.sample.LogTransportHeaders"/>
将以下内容添加到log4j.properties文件后,在代理或API中

log4j.logger.org.sample.LogTransportHeaders=INFO

请参阅此处以获取更多详细信息:https://medium.com/@nirothipanram/wso2-ei-print-all-transport-headers-12aabb4027cc

答案 2 :(得分:-3)

通过使用XPath变量,您可以方便地访问HTTP头,这在技术上是WSO2 ESB中的传输头。读取名为X-EMPID的HTTP标头的最简单方法是使用以下XPath:$ trp:X-EMPID,其中$ trp前缀表示冒号后面的部分是传输属性的名称。要记录标头值,可以使用以下日志介体:

<log level="custom">
  <property name="X-EMPID value" expression="$trp:X-EMPID" />
</log>

要将属性myProperty设置为X-EMPID HTTP标头的值(已存储在传输属性中),您将使用属性介体:

<property name="myProperty" expression="$trp:X-EMPID" />

WSO2 site记录了该功能。

for more