プロキシでプロパティを作成して正常に動作させる必要がありましたが、同じプロジェクト内の別のプロキシでこの値を使用する必要があります。wso2の別のプロキシのプロキシからプロパティ値を回復する6.1
<property expression="$ctx:property-name" name="property-name"/>
をしかし、動作しませんでした:
私はこれを使用することを試みました。誰かがこの値を得ることが可能かどうかを知っていますか?可能であれば、どうやって?
プロキシでプロパティを作成して正常に動作させる必要がありましたが、同じプロジェクト内の別のプロキシでこの値を使用する必要があります。wso2の別のプロキシのプロキシからプロパティ値を回復する6.1
<property expression="$ctx:property-name" name="property-name"/>
をしかし、動作しませんでした:
私はこれを使用することを試みました。誰かがこの値を得ることが可能かどうかを知っていますか?可能であれば、どうやって?
おそらく、この回避策の1つが役に立ちます。
データベース(例えば内部H2データベース)内の値とアクセスしている別の可能であれば
ストアに1つのプロキシから(例えばHTTPヘッダ、石鹸プロパティを設定)、パラメータとして値を渡しますそれは第2代理店からのものです
WSO2 ESBで利用可能なクラスメディエーターオプションを使用する方法もあります。
他のプロキシやサービスから参照する必要のあるプロパティは、このカスタムメディエータに渡すことができます。
<class name="samples.mediators.SimpleClassMediator">
<property name="variable1" value="10"/>
<property name="variable2" value="5"/>
</class>
我々はMediator
またはAbstractMediator
インタフェースを実装することで、このカスタムクラスメディエーターを実装する場合、mediate(MessageContext synCtx)
方法を通じて、我々はシナプスのメッセージコンテキストへのアクセスを取得します(このオブジェクトのプロパティは同じで、すべてのメディエーターに利用できるようになりますサービス)。 MessageContext
オブジェクトに
、あなたは他のグローバルコンテキストだから仲介方法では、あなたがSynapseConfiguration
オブジェクトにアクセスすることができ、その上にsetProperty(String key, String value)
メソッドを使用しているあなたの財産を渡す
、SynapseConfiguration
、SynapseEnvironment
などのようにオブジェクトにアクセスすることができます他のサービスやAPIからアクセスする必要があります。このプロパティにアクセスするには、SynapseConfigurationオブジェクトのgetProperty()
を呼び出し、同様のクラスメディエータを作成します。
参考文献:
https://docs.wso2.com/display/ESB490/Class+Mediator http://synapse.apache.org/apidocs/org/apache/synapse/config/SynapseConfiguration.html
こんにちは、申し訳ありません、古い回答に質問を投稿してください。メッセージがメディエータに到着するたびに、クラスメディエータは新しいオブジェクトとしてインスタンス化されません。その場合、どのようにして1つのプロキシサービスから別のプロキシサービスに状態を保持できますか? –
こんにちは@PetteriPertolaクラスメディエーターはクラスの単一のインスタンスをインスタンス化します。要求レベルの同期が必要な場合は、同じものを処理する必要があります。また、このアプローチは、ユースケースに基づいて使用する必要があります。また、SynapseConfigurationのようなグローバルコンテキストオブジェクトにプロパティを保存し、カスタムクラスメディエータの実装ではなく、プロパティを保存することを考えました。 –
ああ、それは意味があります。私の使用例では、SynapseConfigに保存することができません.SynapseConfigは、異なるプロキシサービス間で利用できるという意味ではグローバルではないからです。 クラスメディエーターに関する文書は、一般的にこの部分ではあまりよくありません。ありがとう。 –
プロパティの値を設定し、共有される配列を作成し、両方のプロキシからそれを呼び出します。 –
私はこの解決策を試しました...しかし、試行リカバリで別のプロキシのプロパティがnull値を受け取ったときにうまくいかなかった。 –
他のプロキシからプロパティを取得することはできません。あなたができることは同じ値に設定されます。 –