0

IBM Websphere Application Server Community Edition (WASCE) 3.0.0.3 に戦争を展開しようとしています。WASCE 3.0.0.3 に付属する jar と、アプリケーションの依存関係に由来する jar との間で競合する jar がいくつかありました。最後に、geronimo-web.xml で以下のプロパティーを使用して、WASCE がアプリケーションから jar をロードするように強制することで、問題を修正しました。

<import-package>!the.conflicting.jars</import-package>

ただし、WASCE が常に最初にアプリケーションから jar を取得するように強制したいと考えています。つまり、アプリケーションから最初にロードするデフォルトのクラスローダーの動作を逆にします。この場合、変更する正しい構成は何ですか?


リンクによると、いくつかの検索の後、WASCE 3.0 は Geronimo 3.0 に基づいています。geronimo-web.xml の設定<inverse-classloading>が役に立つかもしれません。しかし、Apache Geronimo 3.0 Web サイトの以下の 2 つのドキュメントでは、この機能は Geronimo 3.0 では使用できなくなったと述べています。

Migrating from G 2.x to G 3.x では、次のように述べています。

inverse-classloading Geronimo 3.0 はデプロイメント プランの要素をサポートしていません。

geronimo-web.xmlで、

<sys:environment>要素には次の要素が含まれます。

...

この<inverse-classloading>要素を使用して、このモジュールに対して標準のクラスローダー委任を逆にすることを指定できます。Geronimo クラスローダー委任は Java EE 5 仕様に従っており、通常の動作では、現在のクラスローダーをチェックする前に親クラスローダー (利用可能な場合) からクラスをロードします。...... ...... (3.0 ではサポートされていません。<import-package/>代わりに使用してください)


<inverse-classloading>が利用できなくなった場合、WASCE 3.0.0.3 でこのプロパティに相当するものは何ですか ? <import-package/>または、複製されたすべてのjarファイルを使用してこれをどのように正確に行う必要がありますか?

4

1 に答える 1

0

あなたが言及したリンクには、次のセクションがあります

<sys:environment>

XML エレメントは、<sys:environment>共通ライブラリーおよびモジュール・スコープのサービスの共通エレメントを指定するために使用される Geronimo System 名前空間を使用します。

http://geronimo.apache.org/schemas-3.0/docs/geronimo-module-1.2.xsd.html

要素には次の要素が含まれます。

この<moduleId>エレメントは、Geronimo サーバーにデプロイされた Web アプリケーションの構成名を提供するために使用されます。これには、groupId、artifactId、バージョン、およびモジュール タイプの要素が含まれています。モジュール ID は通常、GroupID/ArtifactID/Version/Type などの 4 つのコンポーネントの間にスラッシュを付けて出力されます。

この<dependencies>エレメントは、Web モジュールが依存する構成およびサード・パーティー・ライブラリーを提供するために使用されます。これらの構成とライブラリーは、Geronimo クラスローダー階層を介して Web モジュールで使用できるようになります。

この<bundle-activator>要素は、Web アプリケーションのマニフェスト ファイルに Bundle-Activator ヘッダーを作成するために使用されます。これは、Geronimo サーバーにデプロイされた Web アプリケーションのエントリー・ポイントを指定します。

この<bundle-classPath>要素は、Web アプリケーションのマニフェスト ファイルに Import-Package ヘッダーを作成するために使用されます。これには、バンドル リソースとも呼ばれ、Web アプリケーションのクラスパスを拡張するディレクトリまたは埋め込み jar ファイルのリストが含まれます。

この<import-package>要素は、Web アプリケーションのマニフェスト ファイルに Import-Package ヘッダーを作成するために使用されます。Web アプリケーションが開始される前に解決されるパッケージのリストを指定します。<import-package>!packagename</import-package>サーバー内の特定のパッケージをオーバーライドするために使用します。

この<export-package>要素は、Web アプリケーションのマニフェスト ファイルに Export-Package ヘッダーを作成するために使用されます。エクスポートするパッケージのリストを指定します。

この<require-bundle>要素は、Web アプリケーションのマニフェスト ファイルで Require-Bundle ヘッダーを作成するために使用されます。パッケージに関係なくバインドするバンドルのリストを指定します。

この<dynamic-import-package>要素は、Web アプリケーションのマニフェスト ファイルに DynamicImport-Package ヘッダーを作成するために使用されます。特にクラスのロード中に、動的にインポートされるパッケージのリストを指定します。

基本的に、次のディレクティブを追加する必要があります。

<sys:import-package>!package-class-name-here*</sys:import-package><sys:environment>スタンザ内。通常、Application Context-Root ディレクティブの前。

ご存知のように、これはアプリケーション WAR/EAR に埋め込まれた geronimo-web.xml にあります -- リンクで述べたように

http://geronimo.apache.org/GMOxDOC30/geronimo-webxml.html

于 2015-03-25T16:10:38.460 に答える