WebContent/jsps
フォルダーのJSPファイルにHTMLフォームがあります。 src
フォルダーのデフォルトパッケージにservlet.Java
サーブレットクラスがあります。私のweb.xml
では、/servlet
としてマップされています。
HTMLフォームのaction
属性でいくつかのURLを試しました。
<form action="/servlet">
<form action="/servlet.Java">
<form action="/src/servlet.Java">
<form action="../servlet.Java">
しかし、それらのどれも機能しません。それらはすべて、Tomcat 6/7/8で次のようなHTTP 404エラーを返し続けます。
HTTPステータス404 —/servlet
説明:要求されたリソース(/ servlet)は利用できません。
または、Tomcat 8.5/9の場合:
HTTPステータス404 —見つかりません
メッセージ:/ servlet
説明:Originサーバーは、ターゲットリソースの現在の表現を見つけられなかったか、存在することを開示したくない
なぜ機能しないのですか?
シナリオ#1:コマンドラインから()偶発的に再デプロイ Tomcatはすでに実行されていました。
短い答え:Tomcatを停止し、ターゲットフォルダを削除します、mvnパッケージ再配備
シナリオ#2:request.getRequestDispatcher( "MIS_SPELLED_FILE_NAME。jsp")
短い答え:ファイル名をチェックしてくださいスペル、確認してくださいcaseは正しいです。
シナリオ#3:クラスが見つからない例外(Answer put because because:Question#17982240)( TomcatのサーブレットのJava.lang.ClassNotFoundException Eclipseを使用 )(重複としてマークされ、ここに誘導されました)
短い回答#3.1:web.xmlのservlet-classタグのパッケージパスが間違っています。
短い回答#3.2:Javaファイルのインポートステートメントが間違っています。
1:Tomcatを停止する
2:「ターゲット」フォルダーを削除します。 (mvn cleanはここでは役に立ちません)
3:mvnパッケージ
4:YOUR_DEPLOYMENT_COMMAND_HERE
(鉱山:Java -jar target/dependency/webapp-runner.jar --port 5190 target/*。war)
フルバックストーリー:
偶然新しいgit-bashウィンドウを開き、次の方法でherokuプロジェクトの.warファイルをデプロイしようとしました。
Java -jar target/dependency/webapp-runner.jar --port 5190 target/*。war
展開に失敗した後、2つのgit-bashウィンドウが開いていることに気付き、以前の展開を停止するためにCTLR + Cを使用していなかった.
私に会った:
HTTPステータス404-見つかりませんタイプステータスレポート
メッセージ/if-student-test.jsp
説明Originサーバーは、ターゲットリソースの現在の表現を見つけられなかったか、存在することを開示しません。
Apache Tomcat/8.5.31
シナリオ3.1:web.xmlファイルのservlet-classパッケージパスが間違っています。
Javaサーブレットクラスの先頭にあるpackageステートメントと一致する必要があります。
ファイル:my_stuff /MyClass.Java:
package my_stuff;
ファイル:PRJ_ROOT/src/main/webapp/WEB-INF /web.xml
<servlet-class>
my_stuff.MyClass
</servlet-class>
シナリオ3.2:
MyClass.Javaファイルの先頭に間違った「package」ステートメントを配置しました。
例えば:
ファイルは次の場所にあります: "/ my_stuff"フォルダー
あなたは間違って書きます:
package com.my_stuff
これは次の理由で注意が必要です。
1:mavenビルド(mvnパッケージ)はここでエラーを報告しません。
2:web.xmlのservlet-class行には、正しいパッケージパスを含めることができます。例えば:
<servlet-class>
my_stuff.MyClass
</servlet-class>
使用スタック:Notepad +++GitBash+Maven+Heroku Web App Runner+Tomcat9+Windows10:
NetBeans IDEのHTTP Status 404
のソリューション:プロジェクトを右クリックしてプロジェクトのプロパティに移動し、実行をクリックして、index.jsp
などのプロジェクト相対URLを入力します。
私の問題は、メソッドに@RequestBodyアノテーションがなかったことです。注釈を追加した後、404例外を受信しなくなりました。
次の2つの手順を実行します。 Javaサーブレットアプリケーションの開発中に、Tomcatサーバーで「404が見つかりません」という問題が解決されることを願っています。
ステップ1:Right click on the server(in the server Explorer tab)->Properties->Switch Location from workspace metadata to Tomcat server
ステップ2:Double Click on the server(in the server Explorer tab)->Select Use Tomcat installation option inside server location menu
Spring Frameworkライブラリである古いWebライブラリを削除しました。そして、ライブラリの新しいパスを作成します。その後、動作します。