私はEclipse for Java EEを使ってWebアプリケーションを開発しようとしています。
私はTomcatを私のserverとして使う必要があります。 Tomcatをダウンロードしました。実行中です。しかし、私のプログラムはコンパイルされません。
次のようなエラーが表示されます。
インポートjavax.servletを解決できません。
何をする必要がありますか?
サーブレットAPIをクラスパスに追加する必要があります。 Tomcat 6.0では、これはTomcatのlib
フォルダのservlet-api.jar
というJARにあります。そのJARへの参照をプロジェクトのクラスパスに追加することも、JARのコピーをEclipseプロジェクトに入れてそこからクラスパスに追加することもできます。
JARをTomcatのlib
フォルダに残したい場合は、次のようにします。
servlet-api.jar
を見つけて選択します。または、JARをプロジェクトにコピーしたとします。
servlet-api.jar
を見つけて選択します。まだ行っていない場合は、TomcatをServersビューに統合する必要があります。そこを右クリックしてNew> Serverを選ぶ。リストから適切なTomcatバージョンを選択してウィザードを完了します。
新規動的Webプロジェクトを作成するときは、ウィザードの最初のステップで、リストから統合サーバーをTargeted Runtimeとして選択する必要があります。
または既存の動的Webプロジェクトがある場合は、プロジェクトのプロパティのTargeted Runtimesエントリで設定/変更できます。 Eclipseは自動的にそのライブラリをすべてビルドパスに追加します(プロジェクトにそれらのコピーがなくても)。
POMで依存関係の範囲を '提供'に設定する必要があります。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
その後、すべてがうまくいくでしょう。
クラスパスにservlet-api.jar
を追加します。 Tomcatのlibフォルダから入手できます。
私の「動的Webプロジェクト」は、私が使用したいインストール済みのサーバーを参照していなかったため、サーバーが提供するサーブレットAPIを参照していなかったため、私は同じ問題を抱えていました。
次の手順で、JavaビルドパスにサーブレットAPIを追加せずに解決しました(Eclipse version:Luna)。
編集:サーバーが表示されていない場合は、[ランタイム]タブで新しいサーバーを作成できます。
Pom.xmlに追加する
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
このコンパイルエラーが発生した場合は、サーブレット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ではありません。
あなたが設定する手順に従うことができます。
Eclipseでも同じ問題がありました。どういうわけか私は自分のビルドパスにservlet.jarファイルを持っていませんでした。私がしたのは、自分の作業しているプロジェクトに自分の別のプロジェクトから "lib"フォルダをコピーし、それからそのフォルダに手動で移動し、servlet.jarファイルをビルドパスに追加することでした。プロジェクトエクスプローラでファイルをクリックします。