それで、このプロジェクトが週末前にはうまく動くようにしました(他の問題もありますが、少なくともTomcatは立ち上げました)。 Tomcatサーバーを起動しようとするとすぐに次のエラーが表示されます。
Server Tomcat v7.0 Server at localhost failed to start.
しかし、私はターミナル経由でTomcatをうまく起動することができ、この問題はEclipseで発生しています(Eclipse Java EE IDE Web開発者向けバージョン:Juno Service Release 1ビルドID :20121004-1855)
私はいくつかのフォーラムを探して解決策を見つけようとしましたが無駄でした!困っている人を助けてください。
この問題を解決するには、次のディレクトリにある.snap
ファイルを削除する必要があります。
<workspace-directory>\.metadata\.plugins\org.Eclipse.core.resources
このファイルを削除したら、問題なくEclipseを起動できます。
Windowsから「サーバー」タブを開く→「ビューの表示」→「サーバー」メニュー
サーバーを右クリックして削除します
[サーバー]タブで[新規]→[サーバー]の順に選択して、新しいサーバーを作成します。
「ランタイム環境の設定」リンクをクリックしてください。
Apache Tomcat v7.0サーバーを選択して削除します。これでTomcatサーバーの設定が削除されます。これは多くの人がミスをするところです - 彼らはサーバーを削除しますがランタイム環境を削除しません。
OKをクリックして上の画面を閉じてください。
以下の画面から、Apache Tomcat v7.0サーバーを選択して、次へボタンをクリックしてください。
Tomcatインストールディレクトリに移動します。
「次へ」をクリックして、デプロイしたいプロジェクトを選択してください。
プロジェクトを追加した後にFinishをクリックします
サーバーを起動しましょう。これにより、サーバーのタイムアウトや古いサーバー構成に関する問題が修正されます。この解決策は、「ポートの更新が行われていない」問題を修正するためにも使用できます。
この問題を解決するには、次のディレクトリにあるtmpフォルダを削除する必要があります
<workspace-directory>\.metadata\.plugins\org.Eclipse.wst.server.core
このフォルダの削除に問題がある場合は、Eclipseを再起動してからそのフォルダを再度削除してください。
私の場合、問題はどういうわけかxml
コードにありました。
私のweb.xml
ファイルはこのように見えました:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://Java.Sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>index</servlet-name>
<jsp-file>index.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
しかし私はそれをに見えるように変更しました
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://Java.Sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
これでサーバーは正しく起動します。変です。
私はサーブレットクラスとweb.xmlでサーブレットマッピングを定義するので、私はこの問題に遭遇しました。
サーブレットクラスとweb.xmlでサーブレットマッピングを定義したかどうかを確認するように注意する必要があります。
1)@WebServlet("...")
を削除します
@WebServlet("/Login")
public class Login extends HttpServlet {
}
または
2)<servlet></servlet> <servlet-mapping></servlet-mapping>
を削除する
<servlet>
<servlet-name>ServletLogin</servlet-name>
<servlet-class>Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletLogin</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
理由:
私はサーブレット3.0をサポートするApache Tomcat 7.0を使います。
Java EEアノテーションを使用すると、標準のweb.xmlデプロイメント記述子は次のようになります。
オプションです。サーブレット3.0の仕様によると
ローカルホストのサーバーTomcat v7.0サーバーを起動できませんでした。
このエラーは次の3つのケースで解決します
1.クリーンプロジェクト&サーバー
または
2.このディレクトリから.snapファイルを削除します。
<workspace-directory>\.metadata\.plugins\org.Eclipse.core.resources
または
3.このディレクトリから一時ファイルを削除します。
<workspace-directory>\.metadata\.plugins\org.Eclipse.wst.server.core
私の場合、問題はweb.xmlファイルにあります。ここで、URLパターンの前に "/"を付けるのを忘れていました(例:/login.do)。
@ Ajak6が前述したように、私の問題を解決したのは、サーブレットAPIをプロジェクトの外部JARライブラリとして追加することでした。
しかし、次のようにTomcatをターゲットランタイムに追加することで、より良い方法を見つけました。
1)プロジェクト>プロパティ
2)サイドメニューで「ターゲットランタイム」を選択します
3)Tomcatを選択(適用をクリック)
4)OKをクリック
上記の答えのどれも私のために働きませんでした。 Eclipse IDEでTomcat 9を使用しています。そこで私は私のEclipse Neonで以下のステップを試しました。
ステップ#1:Servers
タブをクリックしてサーバーを確認してください。私の場合は、次のようになります。
ステップ#2:サーバーを右クリックしてProperties
を選ぶと、次のウィンドウが表示されます。 Switch Location
をクリックすると、下の画像に表示されている場所からデフォルトの場所に移動します。Apply
をクリックしてからOK
をクリックしてウィンドウを閉じます。
ステップ#3Tomcatサーバーをダブルクリックすると、下の図に示すようにOverview
オプションが開きます。 Server Locations
部分は私がアクティブになっていたとき(私は最後にそれをして私のサーバーが稼働していたのでイメージでは非アクティブと表示されていました)それとUse Tomcat installation (takes control of Tomcat installation)
である2番目のラジオボタンオプションを選択しました。それからこのオプションを閉じて、プロンプトが表示されたら変更を保存してサーバーを起動しました。それはうまく働き始めました。
新しいワークスペースを作成してもこの問題は解決できます。
web.xmlファイルを開きます。 (あなたがそれがどこにあるのかわからない場合は、単にそれをグーグルそれ。)それはこのようなものです:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
.
.
.
.
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
行のすぐ下に、タグ<element>
を追加し、それを一番下で</element>
タグで閉じます。完了しました。
私は私のTomcatサーバーでも同じ問題を抱えていましたが、私が深くチェックしたとき、私は私のweb.xmlファイルに新しいタグを追加し、サーバーがそれを受け入れないことを発見しました。良いだろう 。
すべてが1秒うまく動いていて、それから私のサーバーは私にこのエラーを出し始めました。私はここで述べられたすべての答えを経験しました、そして私のために働いたのはこの簡単な解決策でした:
サーバーを削除してから新しいサーバーを構成する
何も変更しないでエラーが発生したことを確認したら、.snapファイルまたはその他の一時ファイルの削除を開始しないでください。そうすることはより多くの問題を引き起こすだけです。あなたが行ったいくつかの変更が原因でエラーが発生した場合、このエラーは間違いなくweb.xmlファイル内のいくつかのエラーが原因となっています。
P.Sワークスペースを変更してもまったく問題はありません。問題がプロジェクトにある場合は、プロジェクトをインポートするときに新しいワークスペースで問題が発生するためです。
1 - ワークスペースディレクトリ".metadata".plugins"org.Eclipse.wst.server.coreフォルダに移動します。
2- tmpフォルダを削除します。
3- Eclipse IDEを再起動します
私は同じ問題を抱えていた、そしてここでの答えのどれも私の訴訟を助けなかった。それで数時間の検索の後、私は私のために解決策を見つけました、そしてそれが他の誰かに役立つことを願っています。
これは、 "localhostのServer Tomcat v7.0サーバーを起動できませんでした"という問題がある場合の解決策です。 EclipseでTomcatサーバーを構成し、そこでプロジェクトを実行しようとした後にエラーが発生しました。
EclipseでTomcatサーバーを設定した後、Tomcatから "WEB-INF"ディレクトリをコピーする必要があります。 C:\ ...%Tomcat_HOME%\ webapps\ROOTと、あなたは "WEB-INF"をあなたのEclipseプロジェクトのあなたのWebContentフォルダにコピーアンドペーストするだけです(web.xmlファイルを上書きします)
お役に立てれば。
私の場合、エラーはそれがservlet-api.jarを見つけることができなかったということでした。なぜ突然突然エラーを出し始めたのかわからない。以前は問題なく実行されていたためです。 build pathオプションでservlet-api.jarを指定した後、サーバーは正常に起動しました。
私の場合、私は自分のTomcatフォルダ(その中にすべてのファイルがあるフォルダ)を別の場所に配置しました。
それから私がEclipseを始めてjspのものとサーブレットで私のプロジェクトを実行しようとしたとき、私はこれと同じエラーを得ました。
私はここですべての答えを試したが、それでもまだ何も変わらなかった。私にとっての解決策は、すべてのTomcat JARファイルを次のようにプロジェクトライブラリに入れることでした。
これで、プロジェクトのLibrariesフォルダにそれらが見つかるはずです。それからうまくいくはずです。
私は今週末に同様の問題に直面していました。上記のすべてのトリックを試してみましたが、それらのどれも私のものではありませんでした。 (Eclipse LUNAでの作業)
それから特定のサーブレットを作成する直前に、Apache Tomcat v7.0を正常に実行していたことを分析しました。以下に示すように、これは "RefreshServlet"でした。
そのため、サーブレットを練習して「自動リフレッシュ」機能を理解します。このサーブレットをアプリケーションから削除しても問題なく動作しますが、このサーブレットを追加して実行しようとすると、「Apache Tomcat v7.0を起動できませんでした」という同じエラーが表示されます。
理由はわかりませんが、このサーブレットを削除するだけで、残りのアプリケーションを実行できます。
それで、私からの最終的な提案は他のどのトリックも働いていないなら、このエラーを得る前にそれからあなたが作成したばかりの最新のサーブレットまたはクラスを削除してみてください。
それ以上の説明は認められます。ありがとう
Web記述子(web.xml)またはサーブレット(注釈を付けている場合は、 '@ WebServlet( "/ servlet name")'など)で重複がないか確認します。重複していない場合は削除します。
サーバーコンソールで既存のTomcatサーバーを削除してみてください。コンソールがない場合は、[ビューの表示 - >サーバー]に移動して、サーバーを右クリックして削除できます。新しいサーバーを追加してくださいこれは確かにあなたを助けます。
私のEclipseワークスペースでは、以下の手順を実行することで解決しました。 [ウィンドウ] - > [設定] - > [ネットワーク接続] - > [アクティブプロバイダ]を[ネイティブ]ではなく[直接]に変更します。あなたはそれを試すことができます。
サーブレットのアノテーションが問題になっている可能性があります。サーブレットのURLパターンにアノテーションを使用しているかどうかを確認してください。
プロジェクトファセット(動的Webプロジェクト)のバージョンを2.5に変更し、すべてのサーブレットエントリをweb.xmlに定義して問題を解決してください。
eclipseでプロジェクトファセットのバージョンを変更するには、プロジェクトプロパティでそれを変更します - >検索ボックスで "facet"を検索して、動的Webプロジェクトのファセットバージョンを2.5に変更します。
サーブレットを実行する前に、プロジェクトのクリーニング __ を検討してください。これにより、破損したファイルがすべて削除されます。
Consider /=[-+-]=/cleaning your poject before running the servelet. This will delete all the corrupted files.
与えられた答えがすべてうまくいかない場合は、現在のワークスペースを変更するだけです。
ファイル - >スイッチワークスペース
それはあなたの問題を解決するでしょう。
上記のすべての手順を試した後、問題は解決しませんでした。
最後に以下の手順で解決しました。
1-作業スペースディレクトリ内の.logファイルを確認します。 Javaバージョンの問題
"原因:Java.io.IOException:プログラム" C:\ jdk1.7.0_45\bin\Java "を実行できません:CreateProcessエラー= 193、%1はJava.lang.ProcessBuilder.startの有効なWin32アプリケーションではありません(不明ソース:Java.lang.Runtime.exec(不明のソース)からJava.lang.Runtime.exec(不明のソース)からorg.Eclipse.debug.core.DebugPlugin.exec(DebugPlugin.Java:869)... 80
原因:Java.io.IOException:CreateProcessエラー= 193、%1はJava.lang.ProcessImpl。(不明ソース)のJava.lang.ProcessImpl.create(ネイティブメソッド)では有効なWin32アプリケーションではありません。 ProcessImpl.start(不明なソース)」
正しいOS互換JDKをインストールしましたが、問題は解決しました。シモンズ:私は明示的にEclipseを介してJDKパスを設定した(ウィンドウ - >設定 - >インストールされたJRE)が、正しいJDKパスを設定した後、それは私のためにうまく働きます。
プロジェクトの依存関係をすべてMavenローカルリポジトリ(.m2)から削除してみてください。
パス:C:\ Users\user_name\.m2\repository
eclipseを閉じてもう一度開くと、すべての依存関係が自動的にダウンロードされます。
新しいプロジェクトを作成し、新しいプロジェクトにすべてのファイルをインポートします。
eclipseサーバータブでApacheサーバーをダブルクリックします。 Tomcat管理ポートを8010に、httpポートを8082に、Ajpポートを8011に変更します。
私は自分の問題をEclipseの他のすべてのプロジェクトを単純に閉じることで解決しました。
Apache-Tomcatを右クリックしてプロパティを選択し、Restore Defaultをクリックします。
私の場合、問題は渡されている引数の構文エラーが原因でした。 '-D'を使用すると、キーと値の間にスペースが入りました
すなわち.
-DMyArg= MyValue
の代わりに
-DMyArg=MyValue
私の場合、問題はTomcatの別のインスタンスが実行されていたことにあります。私はサービスからそれを停止し、問題は解決しました
最初のWeb.xmlで、名前の異なる複数の<servlet mapping>タグがあることを確認しますその場合は削除します不要なものと実行します。これは正常に動作します
または
この問題を解決するには、ディレクトリにある.snapファイルを削除する必要があります。
使用しているEclipseのワークスペースに移動します(UsingPath - > workspace.metadata.plugins¥org.Eclipse.core.resources¥snapfile
スナップファイルを削除します
このファイルを削除した後、Tomcatサーバーを削除してくださいそしてApache Tomcatとして選択されているサーバーランタイムも削除してください。次にサーバーを追加し、プロジェクト - >プロパティ - >プロジェクトファセット - >右側に移動して、詳細タブとランタイムタブを見つけます。ランタイムをクリックし、すでに存在するApacheのボックスをチェックします(存在しない場合は追加します)
ポート番号を変更して実行します。