MavenとEclipseの統合によって作成されたプロジェクトがあります。すべて正常に動作しますが、すべてのJSPファイルの作業領域では、次のようになります。
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
最初の文字列whereの場所へ:
<%@ page language="Java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
基本的な動的WebプロジェクトとJSPを作成しても、すべて問題ありません。エラーはありません。
最初にランタイムを追加し、プロジェクトのプロパティを選択します。それからイメージに示すように「Runtimes」タブからサーバー名をチェックしてください。
依存関係にservlet-api-3.1.jar
を含めてください。
メイブン
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
Gradle
configurations {
provided
}
sourceSets {
main { compileClasspath += configurations.provided }
}
dependencies {
provided 'javax.servlet:javax.servlet-api:3.1.0'
}
プロジェクト→ プロパティ → ターゲットランタイム → Apache Tomcat がうまくいった。ファセットの下にターゲットランタイムはありません(私は Eclipse v4.2 (Juno)にいます)。
Antプロジェクトの場合 :
lib
フォルダにservlet-api.jarがあることを確認してください。
Mavenプロジェクトの場合:
POM.xml
に依存関係が追加されていることを確認してください。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
もう1つの方法は、 :正しいサーバーを選択するようにプロジェクトファセットを更新することです。
この場所にあるチェックボックスをオンにします。
プロジェクト→ プロパティ → ターゲットランタイム →Apache Tomcat(任意のサーバー)
プロジェクト→ プロパティ → ターゲットランタイム →* Apache Tomcatが私のために働いた。ファセットの下にはターゲットランタイムはありません(私は Eclipse v4.4 (Luna)を使っています)。
サーバーランタイムにTomcatサーバーを追加すると、仕事ができます:
プロジェクトのプロパティ→ターゲットランタイム→リストからサーバーを選択してください。 " JBossランタイム "→ Finish
Apacheの場合は、Apache Runtimeを選択できます。
これらのステップは本当にあなたを助けることができます:
サーバーをインストールしていない場合は、次の手順を実行する必要があります。
メニューウィンドウ→設定→サーバーを消費する→ランタイム環境→追加→名前を選択してから、すでにPCにインストールしたApacheサーバーのパスを選択します(ダウンロードを押してインストールすることもできます)→ Finish → OK
Tomcatサーバーを追加します。
プロジェクトのプロパティ→Javaビルドパス→ライブラリを追加する→一覧から「Server Runtime」を選択*→次へ→「Apache Tomcat」を選択→ Finish
Ref# この答え
これらの依存関係をpom.xml
ファイルに追加するだけです。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
サーバーランタイムにTomcatサーバーを追加すると、仕事ができます。
プロジェクトのプロパティ→ Javaビルドパス → ライブラリの追加 → リストから "Server Runtime" を選択してください。/ 次へ → "Apache Tomcat"を選択してください。 → 終了 。
プロジェクト→ プロパティ → プロジェクトファセット → ターゲットランタイム → VMware Server を選択します。
それは私のために働きました。
Mavenを使用していない場合は、javax.servlet-api.jarをプロジェクトのlibフォルダーにドロップするだけです。
これには答えがないので、私はMavenの依存関係以外の何かがopsビルドで間違っていると思います。
Mavenを使用していない間は、svnから開発環境を作り直すときに同じ問題を抱えています。その理由を忘れて理解する必要があります。残念ながら、これはEclipseの問題です。
動的Webプロジェクトを1つだけ、またはTomcat依存プロジェクトを1つ選択するだけで、一度作業したプロジェクトからそのようなエラーをすべて取り除き、依存関係をビルド順に移動することができます。これはすべてのプロジェクトを適切に再構築することを強いるようであり、その後すべてのエラーは解決されます。
Webプロジェクトを右クリックし、[ビルドパス] - > [ビルドパスの設定]を選択します。 [注文とエクスポート]タブに移動してから、ライブラリまたはjarエントリを選択して上下に移動します。私はJREシステムライブラリを使用し、それを一番上に移動しました。
[OK]をクリックすると、すべての赤が消えます。
そして、なんらかの理由で何もうまくいかない場合は、コマンドラインからビルドしてください。
ant -Dj2ee.server.home=D:\Apache-Tomcat-8.0.23 clean
ant -Dj2ee.server.home=D:\Apache-Tomcat-8.0.23 compile
ant -Dj2ee.server.home=D:\Apache-Tomcat-8.0.23 dist