私は myeclipse を使用しており、正常にコンパイルするために、java ビルド パス ライブラリに servlet-api.jar と jsp-api.jar があります。この問題は、myeclipse が Web アプリケーションを tomcat にデプロイし、これら 2 つの jar がこれら 2 つの jar の tomcat バージョンと干渉している場合に発生します。これら 2 つの jar を webapp WEB-INF/lib ディレクトリに含めることは避けたいと思います。私は ant を使用しておらず、myelcipse サンドボックス tomcat サーバーを使用してデプロイしています。ありがとう。
3 に答える
まず、servlet-api.jarやjsp-api.jarなどの手動で追加されたJARに依存するのではなく、サーブレットとJSPをコンパイルするために必要なクラスとインターフェイスを提供するサーバーランタイムライブラリを使用することをお勧めします。
次に、これらが手動で追加されたJARではなく、別の依存関係のために埋め込まれている場合、WAR/EARファイルをビルドするときにMyEclipseがこれらのJARを埋め込むことを制限できるかどうかを確認することをお勧めします。通常、これは、動的Webプロジェクトの[プロパティ]ダイアログを開き、Java EEモジュールの依存関係プロパティページでこれらのJARのチェックを外すことで実現されます(個々のJARは[Webライブラリ]タブに一覧表示されます)。
1. [プロジェクト] タブ 2. [プロパティ] 3. [Java ビルド パス] を選択します。 4. [ライブラリ] タブをクリックします。 5. [外部 JAR の追加] をクリックします。8.「OK」をクリックします。
Vineet に感謝しますが、次の手順で解決しました。
myeclipse でプロジェクトを右クリックしてプロジェクトのプロパティに移動し、次のようにします。
Java ビルド パス --> [ライブラリ] タブ --> 右側のペインに [ライブラリを追加] --> [MyEclipse ライブラリ] --> [Java EE 5 ライブラリ]
この Java EE 5 チェック ボックスをオンにすると、jsp/サーブレットのコンパイル時の問題が解決されます。
そのため、これWEB-INF/libで完璧です (servlet-api.jar または jsp-api.jar を追加しないでください)。