WSO2 ESB に構成されたエンド ポイントのメタ データをプログラムで取得しようとしています (例: ServiceName、WebMethods、戻り値の型を持つ入力/出力パラメーターなど)。誰かがこのデータを取得するのに役立つ何らかの方法/ドキュメントに案内してくれませんか?
3 に答える
残念ながら、あなたが何をしたいのかははっきりしていません。プロパティにアクセスする方法の例をいくつか示します(メタデータ?)
プロキシ/シーケンスアクセスプロパティ内:
<property name="some name" expression="get-property('registry','conf:resource/path')"/>
<property name="some name" expression="get-property('registry',gov:resource/path')"/>
<property name="some name" expression="get-property('registry','resourceName')"/>
またはカスタムメディエーター内:
String property = (String)messageContext.getProperty("nameOfThePropery");
または、カスタムメディエーター内(トランスポート層からファイル名を取得):
org.apache.axis2.context.MessageContext axis2messageContext = ((Axis2MessageContext) messageContext).getAxis2MessageContext();
// print the filename of the current transport
myLog.info("FileName: " + axis2messageContext.getTransportIn().getName());
これがあなたをもう少し助けてくれることを願っています、さもなければあなたの質問を改善してください。
1 つの回避策は、クライアント側自体からこれらのエンドポイントを作成することです。これは、カーボン フレームワークによって公開されている AdminService API を呼び出すことで実行できます。Carbon では、すべての Carbon コンポーネントのフロントエンドが Admin Services を介してバックエンドと通信します。たとえば、エンドポイント関連の機能を使用する場合、管理コンソールを使用して機能を作成/削除したり、機能を実行したりすると、「EndPointAdmin」管理サービスを介してそれぞれのバックエンドが呼び出されます。したがって、これらのエンドポイントをプログラムで作成したい場合は、クライアント側から直接 EndPointAdmin バックエンド管理サービス (EndPointAdminStub 経由 - 前述のバックエンド サービスに対応するクライアント スタブ) を呼び出して、要件を満たすことができると思います。
よろしく、 プラバース
Abdul の質問をさらに改善するために、レガシー クライアントと外部 Web サービスとの間の Web サービス ゲートウェイを開発しています。従来のクライアント リクエストをトラップし、内部プロトコルに基づいて正しい Web サービスにリダイレクトする WSo2 でテンプレート/シーケンスを作成しました。
外部 Web サービスはエンドポイントとして WSo2 に登録されます。これまで、管理コンソールを使用してこれらのエンドポイントを手動で構成してきました。このステップを自動化して、ゲートウェイが WSo2 にヒットし、WSDL URL を提供することを検討しています。次に、クラス メディエーターが WSo2 / Synapse API を呼び出して、このエンドポイントを Synapse 構成に保存します。私たちはこれに成功していません。
メディエーターを介してシナプス構成を変更することは推奨されないというドキュメントも読みました。したがって、この仕事を行う他のオプションがあるかどうかを確認したいと思います。