0

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

我想通过预先验证对外部服务器的休息请求来过滤对它的访问。此外部请求的 JSON 结果应包含特定值 fe {"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 类中获得的值来设置该属性?

4

1 回答 1

1

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

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

于 2017-09-20T14:12:05.167 回答