【问题标题】:WSO2 ESB - Dynamic value for proxy parameters (transport)WSO2 ESB - 代理参数的动态值(传输)
【发布时间】:2012-06-22 19:14:38
【问题描述】:

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

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

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

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

非常感谢。

【问题讨论】:

    标签: proxy wso2 mediator synapse wso2esb


    【解决方案1】:

    您可以查看这篇文章How to dynamically route message in WSO2 ESB based on XML configuration file,了解如何在代理序列中动态设置值的示例。

    你可以这样做:

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

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

    问候,尼德基尔

    【讨论】:

    • 感谢您的回答。我已经测试过,但它不起作用。带有脚本中介的示例正在访问之前已使用属性中介定义的属性。奇怪的是,没有任何功能可以轻松创建动态配置。问候,洛伊克
    • 这个答案不起作用 - 参数将设置为完整的
    【解决方案2】:

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

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

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

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

    希望这会有所帮助。

    干杯, 慈善机构

    【讨论】:

    • 感谢您的回答。我尝试使用自定义调解器(始终运行)做一个“触发”代理来更改 conf.的其他代理。像这样的东西:ProxyService proxy = mc.getConfiguration().getProxyService(proxyName); Map&lt;String, Object&gt; parameters = proxy.getParameterMap(); if(proxy.isRunning()){ proxy.stop(mc.getConfiguration()); } proxy.getParameterMap().put("transport.vfs.FileURI",".."); proxy.start(mc.getConfiguration()); 显然代理正在停止并重新启动,但没有进行修改(不知道为什么)。这可能是一种解决方法吗?问候,洛伊克
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    相关资源
    最近更新 更多