2013-02-03 18 views
0

在我配置一個記錄器以返回客戶端IP地址的過程中,我在configuration.xml文件中實現了發佈wsdl的流。這是我的代碼:如何將記錄器消息值傳遞給mule中的.xslt文件

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

現在我想轉移(通過)IP地址到我的.xslt文件?我該怎麼做?

回答

1

如果你使用的騾子3.3,你可以利用MEL和簡化記錄聲明是這樣的:

<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,聲明PARAM變量

<xsl:param name="remoteClientAddress" /> 

,然後使用這個變量作爲

<xsl:value-of select="$remoteClientAddress" /> 
+0

感謝您的答覆這個問題,但我的$ remoteClientAddress格式是這樣的:/127.0.0.1:51708怎麼能我省略/之前的IP地址和:51708從我的字符串結束? – brelian

+0

您可能希望將其作爲單獨的問題進行詳細描述。 –

+0

在XSLT中使用字符串處理器 – user1760178

0

對於與提取您的IP地址正確使用XSLT的功能,如

substring-before() , substring-after() and tokenize() (in XSLT 2.0) 
相關問題