4

我需要能够为代理参数指定一个动态值。实际上,我必须使用完整的 URL 指定每个参数,例如:

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

我看到一些带有属性调解器的示例,我想它适用于下一个代理,但这里的问题是我需要在执行之前更改代理参数值。我尝试使用“触发器”代理调用自定义调解器,该调解器更改所需代理的 SynapseConfiguration 但这不起作用。

有没有办法用查找替换这些固定值来创建一些部署配置?

非常感谢。

4

2 回答 2

2

您可以查看这篇文章如何根据 XML 配置文件在 WSO2 ESB 中动态路由消息,以了解如何在代理序列中动态设置值。

你可以这样做:

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

我不确定这会对您有多大帮助,因为我怀疑 vfs 参数是在初始化代理时设置的,而不是在运行时设置的。如果你试一试,如果可能的话,如果它有效,请回帖到这个线程。

问候,尼德基尔

于 2012-06-20T18:37:20.820 回答
0

代理服务定义中的参数是 Axis2Service 配置中的服务级别参数。它们在您初始化 Axis2Service 时使用,在这种情况下,它是 Synapse/WSO2 ESB 代理服务。所以你不能动态地改变参数。

但我可以建议以下方法。它可能适用于您的方案,也可能不适用。

有一组 VFS 代理来侦听不同的位置。每个人都会查看一个给定的文件扩展名。(一个用于 .txt 一个用于 .foo 等)

使用另一个通用 vfs 代理将文件动态复制到正确的位置(它接受任何扩展名)。(您可以使用 vfs 发件人)。

希望这可以帮助。

干杯,慈善机构

于 2012-06-21T08:40:31.043 回答