【问题标题】:Wso2 Enterprise Integrator mediator filter and external sourcesWso2 Enterprise Integrator 中介过滤器和外部源
【发布时间】:2017-09-20 22:12:05
【问题描述】:

我是 Enterprise Integrator 的新手,所以我可能会遇到误解问题。我已经在 Linux 机器上安装了 WSO2 EI 6.1.1。我为一个非常简单的基于表单的 Web 应用程序创建了一个直通代理,它运行良好。

我想通过先前验证对外部服务器的休息请求来过滤对它的访问。此外部请求的 JSON 结果应包含特定值 f.e. {"valid":"yes"}.

我创建了一个 Java 类,可以进行此调用(目前只是静态分配值并将其加载到变量中):

public class validate extends AbstractMediator { 
    private String validated = "yes";

    public boolean mediate(MessageContext context) { 
        System.out.println("Validating Access!!!!");
        System.out.println("Validated: " + validated);

        return true;
    }

    public String getValidated() {
        return validated;
    }

    public void setValidated(String validated) {
        this.validated = validated;
    }

我看到它运行正常。

作为第二步,我创建了一个中介过滤器,目的是评估这个值。我已经用一个始终正确的 xpath 表达式 1 > 0 测试了这个调解器,我发现 then 和 else 子句可以正常工作。

我无法在过滤器中介体中检查在第一个中介体中获得的值。我怎样才能做到这一点?我错过了什么?

更新:

我发现解决问题的明显方法是定义一个属性中介来存储值。我已经设法使用一个属性在过滤器中做出决定,但是,如何使用在 Java 类中获得的值来设置该属性?

【问题讨论】:

    标签: wso2 wso2esb wso2ei


    【解决方案1】:

    您只需在您的 java 类中添加这一行:mc.setProperty("MyPropertyName", myValue);

    在您的调解中,使用 get-property("MyPropertyName");

    【讨论】:

    • 正确的对象是上下文,所以命令是 context.setProperty("MyPropertyName", myValue);但它有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多