web-dev-qa-db-ja.com

スーパークラス "javax.servlet.http.HttpServlet"がJavaビルドパスに見つかりませんでした

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を作成しても、すべて問題ありません。エラーはありません。

388
disable1992

最初にランタイムを追加し、プロジェクトのプロパティを選択します。それからイメージに示すように「Runtimes」タブからサーバー名をチェックしてください。

Select runtime from Project Facets as shown the in image

605
Ajil Mohan

依存関係に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'
    }
    
233
user1907906

プロジェクト→ プロパティ ターゲットランタイム Apache Tomcat がうまくいった。ファセットの下にターゲットランタイムはありません(私は Eclipse v4.2 (Juno)にいます)。

101
DMF

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(任意のサーバー)

44

プロジェクト→ プロパティ ターゲットランタイム →* Apache Tomcatが私のために働いた。ファセットの下にはターゲットランタイムはありません(私は Eclipse v4.4 (Luna)を使っています)。

29
Burak Durmuş

サーバーランタイムにTomcatサーバーを追加すると、仕事ができます:

プロジェクトのプロパティターゲットランタイム→リストからサーバーを選択してください。 " JBossランタイム "→ Finish

Apacheの場合は、Apache Runtimeを選択できます。

Enter image description here

20
Varun

これらのステップは本当にあなたを助けることができます:

  1. サーバーをインストールしていない場合は、次の手順を実行する必要があります。

    メニューウィンドウ設定サーバーを消費するランタイム環境追加→名前を選択してから、すでにPCにインストールしたApacheサーバーのパスを選択します(ダウンロードを押してインストールすることもできます)→ Finish → OK

参照番号 詳細については、ここをクリックしてください

  1. Tomcatサーバーを追加します。

    プロジェクトのプロパティJavaビルドパスライブラリを追加する→一覧から「Server Runtime」を選択*→次へ→「Apache Tomcat」を選択→ Finish

Ref# この答え

17
Chris Sim

これらの依存関係を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>
14
A. El Idrissi

サーバーランタイムにTomcatサーバーを追加すると、仕事ができます。

プロジェクトのプロパティ→ Javaビルドパス ライブラリの追加 リストから "Server Runtime" を選択してください。/ 次へ → "Apache Tomcat"を選択してください。 → 終了

7
adarsh hegde

プロジェクト→ プロパティ プロジェクトファセット ターゲットランタイム VMware Server を選択します。

それは私のために働きました。

5
Anant Pathak

Mavenを使用していない場合は、javax.servlet-api.jarをプロジェクトのlibフォルダーにドロップするだけです。

2
Mahder

これには答えがないので、私はMavenの依存関係以外の何かがopsビルドで間違っていると思います。

Mavenを使用していない間は、svnから開発環境を作り直すときに同じ問題を抱えています。その理由を忘れて理解する必要があります。残念ながら、これはEclipseの問題です。

動的Webプロジェクトを1つだけ、またはTomcat依存プロジェクトを1つ選択するだけで、一度作業したプロジェクトからそのようなエラーをすべて取り除き、依存関係をビルド順に移動することができます。これはすべてのプロジェクトを適切に再構築することを強いるようであり、その後すべてのエラーは解決されます。

Webプロジェクトを右クリックし、[ビルドパス] - > [ビルドパスの設定]を選択します。 [注文とエクスポート]タブに移動してから、ライブラリまたはjarエントリを選択して上下に移動します。私はJREシステムライブラリを使用し、それを一番上に移動しました。

[OK]をクリックすると、すべての赤が消えます。

2
kas

そして、なんらかの理由で何もうまくいかない場合は、コマンドラインからビルドしてください。

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
0
Puneet Pandey