【问题标题】:How to Print all properties set in property mediator in WSO2?如何打印 WSO2 中属性中介中设置的所有属性?
【发布时间】:2020-08-26 09:43:09
【问题描述】:

在 WSO2 ESB 中,我希望在日志序列的末尾打印属性中介中服务链期间设置的所有属性。 在不知道属性名称的情况下,有什么方便的方法吗?

谢谢

【问题讨论】:

  • 请将您的标题更改为问题表单

标签: wso2 wso2esb


【解决方案1】:

有比实现自定义类中介更简单的方法。您可以为此使用脚本调解器,并使用如下代码打印所有带有来自消息上下文的值的属性。它正在开发 WSO2EI 6.6.0 和 WSO2ESB 4.9.0

<script language="js"><![CDATA[var keySet = mc.getPropertyKeySet();
        var i = 1;
        var it = keySet.iterator();       
       while(it.hasNext()){
         var prop = it.next();
         java.lang.System.out.println(i + ": " + prop + " = " + mc.getProperty(prop));
         i++;
    }]]></script>

更新: 我发现,在 linux 系统上 System.out.println 不能正常工作,所以你可以使用 mc.getServiceLog() 方法来获取记录器来打印信息

<script language="js"><![CDATA[
       var keySet = mc.getPropertyKeySet();
       var i = 1;
       var it = keySet.iterator();
       var log = "\n\r";
       while(it.hasNext()){
         var prop = it.next();
         log += i + ": " + prop + " = " + mc.getProperty(prop)+"\n\r";
         i++;
    }
    mc.getServiceLog().info(log);
]]></script>

【讨论】:

    【解决方案2】:

    我没有看到这样做的直接方法。我发现的一种解决方法是编写一个自定义类调解器,您可以在其中获取属性键集作为消息上下文的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多