0

在 configuration.xml 文件中,我实现了一个发布 wsdl 的流程,在此过程中我放置了一个返回客户端 IP 地址的记录器。这是我的代码:

<logger message="#[groovy:message.getInboundProperty('MULE_REMOTE_CLIENT_ADDRESS')]" level="INFO" doc:name="Logger"/>

现在我想将 ip 地址传输(传递)到我的 .xslt 文件?我该怎么做?

4

2 回答 2

1

如果您使用的是 Mule 3.3,则可以使用MEL并简化 logger 语句,如下所示:

<logger message="#[message.inboundProperties['MULE_REMOTE_CLIENT_ADDRESS']]" level="INFO" doc:name="Logger"/>

要将 IP 地址传递给 XSLT,请将其存储在一个变量中并传递它。

<set-variable variableName="remoteClientAddress" value = "#[message.inboundProperties['MULE_REMOTE_CLIENT_ADDRESS']]"/>

用记录仪显示

  <logger message="Remote client address is------> #[remoteClientAddress]" level="INFO" doc:name="Logger"/>

将其传递给XSLT

   <xm:xslt-transformer xsl-file="xsltFileName.xslt">
        <xm:context-property key="remoteClientAddress" value="#[remoteClientAddress]"/>
    </xm:xslt-transformer>

在你的XSLT,声明一个参数变量

<xsl:param  name="remoteClientAddress" />

然后将此变量用作

<xsl:value-of select="$remoteClientAddress" />
于 2013-02-03T12:20:42.637 回答
0

对于与正确提取 IP 地址相关的问题,请使用 XSLT 函数,例如

 substring-before() , substring-after()  and tokenize() ( in XSLT 2.0)
于 2013-02-06T19:22:04.717 回答