0

2つのポリシーを交差させたいクラスメディエーターを作成しました。Carbon Studio forEclipseを使用してClassMediatorを作成しました。これにより、事前定義されたライブラリがプロジェクトのビルドパスに自動的に追加されます。

ライブラリの1つはneethi-2.0.4.wso2v1.jarです。

交差メソッドを使用したい場合、例外が発生します。ソースを見ると、intersectメソッドが「UnsupportedOperationException」をスローするだけであることがわかります。

したがって、指定されたneethi libは交差には役に立たないため、クラスメディエーター内の交差には最新のNeethi lib(別名neethi-3.0.2.lib)を使用したいと思います。

サードパーティのライブラリ、特に私のユースケースでは、esb(neethi-2.0.4.wso2v1.jar)内でかつて使用されていたものをオーバーライドするサードパーティのライブラリを含める方法を教えてください。

ありがとう

4

1 に答える 1

0

Developer Studio は、これらのライブラリをプロジェクトのクラスパスに追加して、開発者がソース コードでビルド エラーにならないようにします。

したがって、これらのライブラリは開発時専用であり、Dev Studio でのみ使用できます。サーバーの実行時に使用されるライブラリではありません。

ランタイム ライブラリは、WSO2 Carbon Server ランタイムによって提供されます。したがって、この UnsupportedOperationException is throw by the server は、サーバーの neethi のバージョンがサポートしていないために発生します。そのため、サーバー ランタイムでライブラリをアップグレードする必要があります。

しかし、ご覧のとおり、WSO2 は neethi コードベースを分岐し、分岐したソースにいくつかのカスタム実装を持っています。したがって、IMO、単にバージョンをアップグレードするだけでは役に立ちません。

とにかく、実際にライブラリをアップグレードして、問題が発生するかどうかを確認する必要があります。

バージョンをアップグレードするには、新しい Neethi ライブラリ用の Java ライブラリ アーティファクトを作成し、それを CAR ファイルに含めて CAR ファイルを展開するか<CARBON_HOME>/repository/components/lib、サーバーの実行中に新しい Neethi ライブラリを特定の場所にコピーします。

その場所に現在のニーティ図書館があり<CARBON_HOME>/repository/components/pluginsます。「リンケージ エラー」のようなエラーまたは例外が見つかった場合は、古いバージョンのライブラリを削除してみてください。しかし、それは他のいくつかの例外を引き起こすでしょう.

したがって、IMO の結論としては、バージョンのアップグレードでいくつかの問題に直面することになります。しかし、もちろん、それらを克服できるかどうか試してみることはできます。試してみて、ここに観察結果を投稿してください。私たちはあなたを助けるために最善を尽くします。

于 2012-08-08T01:59:51.023 に答える