2012-06-20 46 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 –