1. エラーを再現します
以前プロジェクトをidea
作成していたとき、構成によって次のようなエラーが頻繁に発生したことを思い出します。Java web
Tomcat
それがThe requested resource [/] is not available
問題なのです。
2. 分析エラー
最近の火災に追いつきつつあるので、次のように問題を解決するためにChatGPT
それを使用します。ChatGPT
要求されたリソースは使用できません 要求され
たリソースは、さまざまな理由により使用できない可能性があります。削除されたり、名前が変更されたり、別の場所に移動された可能性があります。リソースを再度検索してみるか、Web サイトの管理者に問い合わせて詳細を確認してください。
残念ながら、ChatGPT
英語での返信を考えると、それを中国語に翻訳したほうがよいでしょう。
要求されたリソースは使用できません 要求
されたリソースは、さまざまな理由により使用できない可能性があります。削除されたか、名前が変更されたか、別の場所に移動された可能性があります。リソースを再度検索してみるか、詳細についてウェブマスターに問い合わせてください。
翻訳結果から明らかなように、请求的资源不可用
、つまり、インターネット上で言及されている問題です404
。
3. バグを修正する
要求されたリソースが利用できないと言われているので、要求されたリソースが利用できるように次の修正を加えます。
以下、ローカルプロジェクトとオンラインプロジェクトに基づいて修正します。
3.1 ローカルプロジェクト
- 最初に見つけたダウンロード ディレクトリ、私のディレクトリ
tomcat
は にありますD:\Software\tomcat8.5
。次の図に示すように、そのディレクトリに入ります。bin
- 次の図に示すように、
startup.bat
ファイルを見つけてダブルクリックして開始します。tomcat
linux
【備考】システム(例えばUbuntu
アップルコンピュータ等)をご利用の場合は、にディレクトリをterminal
入力後、 を入力して起動してください。bin
sh startup.sh
tomcat
Tomcat
正常に起動すると、次のようなデフォルトのインターフェイスが表示されます。
このインターフェースが表示されればtomcat
問題ありません。
- 次の図に示すように、右上隅のドロップダウン ボックスをクリックして を選択し
Edit configuration
、新しいボックスを作成します。Tomcat local server
- 次に、 をクリックします
Deployment
。
クリックしてもおそらく何もなく、+
右側をクリックするとこのようなダイアログボックスが表示されます。
Tomcat
インストール ディレクトリを見つけます。以下に示すように、webapps
フォルダの下にROOT
フォルダがあります。
選択してROOT
クリックするだけok
でDeployment
設定が完了します。
- 最後のポイント
Tomcat
ラン
デフォルトのページに正常にジャンプする場合は、基本構成と外部依存関係に問題がないことを意味します(Tomcat が正しくインストールされており、Java と Maven の依存関係が正しい)。
インターネット上では、URL
パスをランダムに変更すると間違ったパスが報告されると言われており404
、deployment
パスはURL
一貫性を持たなければならないとも言われています。
上記の設定に問題がない場合は、どのような状況で404
エラーが報告されるかを自分で検証できます。
まず観察後の結論について話しましょう。
これを変更したい場合は、変更せずに、その下のパスを次のようにURL
変更します。deployment
Application context
変更するとURL
自動的に変更されます。最終的に、それらの 2 つのパスの背後にある名前は、それらが一貫している限り、一貫したものになります。
最初に変更しないでくださいURL
。最初に変更するとURL
、後で対応するものがApplication context
変更されなくなり、間違いが発生しやすくなります404
。
3.2 オンラインプロジェクト
ローカル プロジェクトのテストに問題がない場合は、次のように実際のプロジェクトをテストできます。
この時点で、Application context
書くときに何に注意すべきかを知っておく必要があります。
上記の構成の問題ではない場合は、プロジェクト コードのパス構成に問題があります。
Maven
新しいものを作成する場合Java Web
、おそらく次のようなパス構造になります。
一般に、このweb.xml
構成エラーにより404
エラーが発生します。
まずTomcat
、サーバーを起動して、プロジェクトのホームページが正常に表示されるかどうかを確認します。
-
正常に表示できない場合は、
web.xml
ホームページのアドレスが正しく記載されているか確認してください。 -
ホームページは正常に表示されるが、ジャンプページが正常に表示されない場合は、
form
パスの設定が間違っている可能性があります。
簡単な例を示します。たとえば、次index.jsp
のように、 でフォームの送信とジャンプを実行したいとします。
静的ページにジャンプした場合は、action
パスの設定が正しいかどうかを確認してください。
動的ページの場合、たとえば特定のフォームの結果を に送信したい場合servlet
、相対パスに従って記述しないでください。
このときweb.xml
、対応url_pattern
とmapping
設定を行う必要がありますが、このような設定はいくつかの間違いを犯し、404
遭遇した問題につながる可能性があります。
したがって、configurationとweb.xml
configurationではなく、configuration にアノテーションを使用することを強くお勧めします。url_pattern
mapping
これを構成すると、次のコードに示すように、注釈を追加するLoginServlet
だけで済みます。LoginServlet
@WebServlet
@WebServlet(urlPatterns = "/LoginServlet")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
System.out.println(username);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
この構成では、上記のform
フォームはエラーなく正常に送信され、リダイレクトされます404
。
上記の方法で問題が解決できない場合は、次の方法を参照して問題を解決できます。
4. このエラーに対するその他の解決策
- ディレクトリは参照できません。
ファイルの保存場所をEclipse
確認できます。包资源管理器(Package Explorer)
META-INF
フォルダ配下WEB-INF
は非公開となっているため、この2つのディレクトリを含むファイルを引用することは絶対に禁止されており、以下のURLアドレスが間違っています。
http://localhost:8081/testProject/WEB-INF/index.html
-
URL
入力エラーのトラブルシューティング方法は次のとおりです。-
まずはアドレスとポート番号が正しく書き込まれている
URL
か確認してください。IP
-
次に、コンテキスト パスが正しいかどうかを確認します。たとえば
Project -> Properties -> MyElipse -> Web -> Web Context-root
、パス名が正しく記述されているかどうかを確認します。 -
最後に、ファイル名が正しく記述されていることを確認してください。
-
-
Web
アプリケーションがデプロイされていない -
Tomcat
web.xml
の問題
web
アプリケーションに複数のページがある場合、アプリケーションの仮想ルート ディレクトリjsp
をクリックすると、 が表示されることがあります。web
404错误
この時点では、次のコードに示すように、Tomcat
サーバーを変更するだけで済みます。web.xml
<!-- 将false修改为true -->
<init-param>
<param-name>list</param-name>
<param-value>false</param-value>
</init-param>
6.0.18
version error
: always のファイルにThe requested resource () is not available.
アクセスできない場合は、 にファイルのコピーを作成/myapp/*.jsp
できます。/ROOT
build.xml
copy
myapp
【注意】 の中をすべて に置き換えれROOT
ばmyapp
OKです。
-
WEB-INF
以下にいくつかの固定フォルダーとファイルが存在する必要があります-
web.xml
設定web app
ファイル -
lib
web app
使用すべきライブラリファイル -
classes
コンパイルしたものを保存するservlet
-
これらの名前に注意してください。classes
以前は と書いていましたclass
が、エラーを確認しても問題は解決していません。
したがって、これらを記述するときは注意する必要があり、そうしないと、エラーのチェックにエネルギーを無駄に費やすことになります。
servlet(.class)
ファイルではなくファイルを実行している場合は、次のフィールドを に追加する.jsp
必要があります。web.xml
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/TestServlet</url-pattern>
</servlet-mapping>
このうち、TestServlet
実行したいファイル名を変更します。
【注意事項】は以下の通りweb.xml
ですWEB-INF
。
struts.xml
構成エラー
おそらくAction
値が間違っているか、リンクがURL
間違っている可能性があります。
たとえば、commons-lang3-3.1.jar
ファイルがWEB-INF/lib
ディレクトリに移動すると、struts2
最新のweb
開発パッケージは次のようになります。
もちろん、maven
プロジェクトの場合は、以下に示すように、そのプロジェクトにパッケージを直接pom.xml
インポートできます。jar
<!--apache配置开始-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
<!--apache配置结束-->
- 同じプロジェクトに対して複数の
java
サービスが開始されているかどうかを確認する
以前のサービスがバックグラウンドで閉じられていない場合に再起動すると、エラーが報告されることがあります404
。