0

現在、組み込みJetty 5.1.14サーバー(サーブレット2.4)のJSF1.1で実行されている大規模なコードベースがあります。サーブレット2.5が必要になると予想されていたにもかかわらず、このバージョンのJettyでJSF 2.0.9アプリを実行することができ、EL2.1.2とJSFjarをWEB-INF/libに追加しました。これは、JSF1.1を除外するjetty構成で機能します。

本番環境は、単一のサーバーインスタンス上の多数のwarファイルとjarファイルで構成されます。

JSF1.1は現在サーバーのext/libフォルダーにあり、単一のwarファイルでJSF2jarをWEB-INF/libに含めたいと思います。サーバーJSFバージョンが最初にロードされ、クラスパスの汚染を引き起こすため、これは不可能です。

ただし、カスタムクラスローダーを使用して1つのwarファイルにJSF 1.1 jarをロードすることを排除することは可能でしょうか?ドキュメントは、物事を除外するのではなく、クラスパスにパスを追加する場合に対応しているようです。サーバー全体のコンテキストでロードされるのか、戦争だけでロードされるのかはわかりませんでした。

もう少し情報:もう1つの解決策は、Jetty8とJSF2.1以降にアップグレードすることです。これは良い考えであると経営陣に納得させることは別として、古いWebMethods7バージョンを使用します。これには、JSF APIを使用してコンテンツを生成するコンポーネントアプリケーションフレームワークによって変換されるXMLを生成するグラフィカルレイアウトツールがあります(したがって、非常にいくつかのJSP)。これは、それが機能するかどうかを確認する場合であり、このWebMethodsの「コード」をサポートし続ける必要があるために完全に再考する必要がない場合です。

ここでの主な目標は、必ずしも1つのステップではありませんが、最終的に最新のソフトウェアを実行することです。

4

1 に答える 1

1

この時点で Jetty5 は信じられないほど古いので、jetty8 の更新に取り組むか、数か月待ってから現在マイルストーンをリリースしている jetty9 に移行することをお勧めします。それ以降の新しい jvm の変更だけでも、jetty コンテナーを更新する十分な理由があります。

このアプローチが jetty5 でサポートされていたかどうかはわかりませんが、jetty6 では、システムおよびサーバー クラスを介してコンテキストに公開されているクラスを変更する webapp コンテキストの機能があります。これらのフックが存在する場合は、その特定のコンテキストを微調整して、ext/lib の jar 内のクラスを公開しないようにすることができます。

于 2012-10-05T14:25:15.150 に答える