2012-06-20 26 views
4

我需要能夠爲代理參數指定動態值。其實,我不得不與像完整的URL指定的每個參數:WSO2 ESB - 代理參數(傳輸)的動態值

<parameter name="transport.vfs.FileNamePattern">.*.txt</parameter> 

我看到一些樣品財產調解員,我想它的工作爲接下來的代理,但這裏的問題是,我需要之前更改代理參數值我認爲它的執行。我試着用一個「觸發器」代理調用一個自定義中介,它改變了所需代理的SynapseConfiguration,但是這不起作用。

有沒有辦法用查找替換這些固定值來創建一些部署配置?

非常感謝。

回答

2

你可以看看這篇文章How to dynamically route message in WSO2 ESB based on XML configuration file一個例子如何動態地設置代理序列中的值。

你可以做一些這樣的:我不知道這會幫助你很多,我懷疑初始化代理,而不是在飛行時,VFS參數設置

<parameter name="transport.vfs.FileNamePattern"> 
    <script language="js">mc.getProperty('MY_DYNAMIC_VALUE')</script> 
</parameter> 

。如果你試試看,如果可能的話,請回發到這個線程,如果它的工作與否。

問候,nidkil

+0

感謝您的回答。我已經測試過,但不起作用。具有腳本調解器的樣本正在訪問之前用屬性介體定義的屬性。奇怪的是沒有功能可以輕鬆創建動態配置。問候,Loïc –

0

參數在代理服務定義服務水平參數,這些參數是在Axis2Service配置。當您在初始化Axis2Service時使用它,在這種情況下,它是Synapse/WSO2 ESB代理服務。所以你不能動態地改變參數。

但我可以建議以下方法。它可能會或可能不適用於您的場景。

已經設置了監聽單獨位置的VFS代理。每個人都會看一個給定文件的擴展名。 (一個用於.txt文件,用於.foo等)

使用另一個通用vfs代理將文件動態複製到正確的位置(它可以接受任何擴展名)(您可以使用vfs sender)。

希望這會有所幫助。

歡呼聲, Charith

+0

謝謝你的回答。 我試圖做一個「觸發」代理與自定義中介(始終運行)來改變conf。的其他代理。像這樣: 'ProxyService proxy = mc.getConfiguration()。getProxyService(proxyName); Map parameters = proxy.getParameterMap(); if(proxy.isRunning())proxy.stop(mc.getConfiguration()); } proxy.getParameterMap()。put(「transport.vfs.FileURI」,「..」); proxy.start(mc.getConfiguration());' 顯然,代理正在停止並重新啓動,但未進行修改(不知道爲什麼)。它可能是一種可能的解決方法嗎? Regards, Loïc –