42

IDE内で実行されているTomcat 7でEclipse 3.7(STS)を使用しています。新しい動的 Web プロジェクトを作成し、1 つの JSP ファイルを Web コンテンツのルート フォルダーに追加しました。問題なく Tomcat を実行し、Eclipse 内から JSP にアクセスできます。

ユーザー ライブラリからいくつかのサード パーティの JAR をプロジェクトに追加しました (Maven または自動依存関係管理は使用していません)。JSP では、プロジェクトの JAR ファイルからクラスを参照します。これを問題なくコンパイルできますが、Tomcat にデプロイすると、JSP は ClassNotFoundException をスローします。明らかに、Tomcat はライブラリ設定から JAR を見つけることができません。Tomcat サーバーの Run As 構成を作成しようとしましたが、プロジェクトのクラスパス設定と一致するようにクラスパスを設定しましたが、それでも同じ classnotfound 問題が発生します。

すべてのプロジェクト JAR を WEB-INF/lib ディレクトリに手動でコピーして、webapp がすべての依存関係を見つけられるようにすることで、この問題を回避できましたが、それはばかげており、メンテナンスの悪夢であるため、それが解決策になるとは思いません。

何か不足していますか?

4

2 に答える 2

99

プロジェクトのプロパティで、Deployment Assemblyに移動します。そこに、ユーザー ライブラリとして手動で追加した buildpath エントリも追加します。/WEB-INF/lib展開された WAR で終了します。

ここに画像の説明を入力

于 2011-08-10T04:21:54.673 に答える
3

jar ファイルを WEB-INF/lib フォルダーにコピーする必要があります。

Eclipse は、すべての依存関係を含む WAR ファイルを生成するオプションを提供する必要があります。Web ツールをしばらく使用していませんが、何らかの方法ですべての依存関係を WEB-INF/lib に配置する必要があります。そうしないと、クラス ローダーが動作しません。それらを見つけることができません。

于 2011-08-10T04:10:05.193 に答える