2017-09-20 6 views
0

私は誤解の問題に直面している可能性があるため、Enterprise Integratorを初めて使用しています。 LinuxボックスにWSO2 EI 6.1.1をインストールしました。私は非常に単純なフォームベースのWebアプリケーションのためのプロキシを通過して作成し、それは完全に動作します。Wso2 Enterprise Integratorメディエータフィルタと外部ソース

私は、外部サーバーへの残りの要求を検証する前に、そのアクセスをフィルタしたいと考えています。この外部リクエストのJSON結果には、特定の値、f.eを含める必要があります。 {"valid":"yes"}。私はそれが正常に動作してご覧

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; 
    } 

私は、Javaクラスtahtはこのコール(現時点では単なる静的に値を代入して、変数に読み込み)を行うことができます作成​​しました。

第2のステップとして、この値を評価する目的でメディエータフィルタを作成しました。私はいつも真のxpath表現でこの仲介者をテストしました1 > 0そして、then節とelse節が正しく動作することがわかりました。

フィルターメディエーターの最初のメディエーターで得られた値を確認することができませんでした。これどうやってするの?私は何が欠けていますか?

UPDATE:私はこの問題を解決するための見かけの方法は値を格納するためのプロパティメディエーターを定義していることを発見した

。フィルタで決定するためにプロパティを使用することはできましたが、Javaクラスで取得した値でプロパティを設定するにはどうすればよいですか?

答えて

1

Javaクラスに次の行を追加するだけです。mc.setProperty( "MyPropertyName"、myValue);

メディエーションでは、get-property( "MyPropertyName")を使用します。

+0

正しいオブジェクトはコンテキストなので、コマンドはcontext.setProperty( "MyPropertyName"、myValue)です。それは動作します。 – jordi

関連する問題