【发布时间】: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 类中获得的值来设置该属性?
【问题讨论】: