web-dev-qa-db-ja.com

インポートjavax.servletを解決できません

私はEclipse for Java EEを使ってWebアプリケーションを開発しようとしています。

私はTomcatを私のserverとして使う必要があります。 Tomcatをダウンロードしました。実行中です。しかし、私のプログラムはコンパイルされません。

次のようなエラーが表示されます。

インポートjavax.servletを解決できません。

何をする必要がありますか?

125
snakile

サーブレットAPIをクラスパスに追加する必要があります。 Tomcat 6.0では、これはTomcatのlibフォルダのservlet-api.jarというJARにあります。そのJARへの参照をプロジェクトのクラスパスに追加することも、JARのコピーをEclipseプロジェクトに入れてそこからクラスパスに追加することもできます。

JARをTomcatのlibフォルダに残したい場合は、次のようにします。

  • プロジェクトを右クリックし、プロパティをクリックします。
  • Java Build Pathを選択してください。
  • ライブラリタブをクリック
  • クリック外部JARを追加...
  • servlet-api.jarを見つけて選択します。
  • ビルドパスを更新するには、OKをクリックします。

または、JARをプロジェクトにコピーしたとします。

  • プロジェクトを右クリックし、プロパティをクリックします。
  • Java Build Pathを選択してください。
  • クリックJARを追加...
  • プロジェクト内でservlet-api.jarを見つけて選択します。
  • ビルドパスを更新するには、OKをクリックします。
195
Richard Fearn

まだ行っていない場合は、TomcatをServersビューに統合する必要があります。そこを右クリックしてNew> Serverを選ぶ。リストから適切なTomcatバージョンを選択してウィザードを完了します。

新規動的Webプロジェクトを作成するときは、ウィザードの最初のステップで、リストから統合サーバーをTargeted Runtimeとして選択する必要があります。

または既存の動的Webプロジェクトがある場合は、プロジェクトのプロパティのTargeted Runtimesエントリで設定/変更できます。 Eclipseは自動的にそのライブラリをすべてビルドパスに追加します(プロジェクトにそれらのコピーがなくても)。

90
BalusC

POMで依存関係の範囲を '提供'に設定する必要があります。

http://maven.Apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope

<dependency>  
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.4</version>
  <scope>provided</scope>
</dependency>

その後、すべてがうまくいくでしょう。

17
Jeroen Rondeel

クラスパスにservlet-api.jarを追加します。 Tomcatのlibフォルダから入手できます。

13
Bozho

私の「動的Webプロジェクト」は、私が使用したいインストール済みのサーバーを参照していなかったため、サーバーが提供するサーブレットAPIを参照していなかったため、私は同じ問題を抱えていました。

次の手順で、JavaビルドパスにサーブレットAPIを追加せずに解決しました(Eclipse version:Luna)。

  • 右クリックあなたの "動的Webプロジェクト"で
  • 選択プロパティ
  • [プロパティ]ウィザードの左側のリストで、Project Facetsを選択します。
  • ウィザードの右側には、Runtimesという名前のタブがあります。 「実行時」タブを選択し、サーブレットを実行したいサーバーをチェックします

編集:サーバーが表示されていない場合は、[ランタイム]タブで新しいサーバーを作成できます。

12
leiseliesel

Pom.xmlに追加する

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>
8
Andrey

このコンパイルエラーが発生した場合は、サーブレットjarがクラスパスに含まれていないことを意味します。このjarを含める正しい方法は、Server Runtime jarをEclipseプロジェクトに追加することです。あなたはこの問題に取り組むために以下のステップに従うべきです:あなたはここからservlet-api.jarをダウンロードすることができます http://www.Java2s.com/Code/Jar/s/Downloadservletapijar.htm

Save it in directory. Right click on project -> go to properties->Buildpath and follow the steps.

注:画面に表示されているjarは正しいjarではありません。

あなたが設定する手順に従うことができます。

enter image description here

enter image description hereenter image description hereenter image description here

5
Varun

Eclipseでも同じ問題がありました。どういうわけか私は自分のビルドパスにservlet.jarファイルを持っていませんでした。私がしたのは、自分の作業しているプロジェクトに自分の別のプロジェクトから "lib"フォルダをコピーし、それからそのフォルダに手動で移動し、servlet.jarファイルをビルドパスに追加することでした。プロジェクトエクスプローラでファイルをクリックします。

2
YMW