0


全网多种方式解决The requested resource [/] is not available的错误

文章目录

1. 复现错误

曾记得,当初使用

idea

来写

Java web

项目时,常常因为

Tomcat

配置导致如下错误:

在这里插入图片描述

The requested resource [/] is not available

问题。

2. 分析错误

正赶上最近

ChatGPT

很火,于是借助

ChatGPT

来解决我的问题,如下所示:

在这里插入图片描述

The requested resource is not available

The requested resource may be unavailable due to a variety of reasons.It may have been removed, changed names, or moved to a different location. Please try searching for the resource again or contact the website’s administrator to find out more information.

可惜的是,

ChatGPT

给出英文的回复,我们不妨翻译成中文:

请求的资源不可用

由于各种原因,请求的资源可能不可用。它可能已被删除、更改名称或移动到其他位置。请尝试再次搜索资源或联系网站管理员以了解更多信息。

从翻译结果可以清楚地看到:

请求的资源不可用

,即网上说的

404

的问题。

3. 解决错误

既然说请求资源不可用,那我进行如下修改,以保证请求资源的可用性。

以下,基于本地项目和线上项目来修改。

3.1 本地项目

  1. 我们先找到tomcat的下载目录,我的是在D:\Software\tomcat8.5,进入bin目录下,如下图所示:

在这里插入图片描述

  1. 找到并双击startup.bat文件,启动tomcat,如下图所示:

在这里插入图片描述

**【备注】如果你使用的是

linux

系统(比如

Ubuntu

,苹果电脑等),在

terminal

中进入到

bin

目录后,输入

sh startup.sh

即可启动

tomcat

。**

  1. Tomcat启动成功后,能否看到它的如下默认界面:

在这里插入图片描述

如果出现这个界面,说明

tomcat

没有任何问题。

  1. 点击右上角下拉框,选择Edit configuration,新建一个Tomcat local server,如下图所示:

在这里插入图片描述

  1. 接着点击Deployment

点击后,大概啥也没有,点右侧的

+

可以弹出一个这样的对话框。

找到你的

Tomcat

的安装目录,在

webapps

文件夹下面有一个

ROOT

文件夹,如下图所示:

在这里插入图片描述

在这里插入图片描述

选中

ROOT

即可,点击

ok

即可,如此

Deployment

就配置完成。

  1. 最后点Tomcat运行

如果正常跳转到默认页面,就说明你的基本配置,外部依赖啥的是没有问题的 **(Tomcat安装正确,Java,Maven依赖正确)**。

在这里插入图片描述

网上说是这个

URL

的路径乱改之类会报

404

的错误,也有说是

deployment

的路径必须和

URL

的路径一致之类的。

如果你上面的配置都没问题,可以自行验证一下,看哪种情况会报

404

的错误。

我先说一下观察后的结论:

如果你要去改,不要改

URL

,而是修改

deployment

下的

Application context

的路径,如下所示:

在这里插入图片描述

改它的话,

URL

会自动改的。最终他们两个路径后面的名称会保持一致,只要保持一致就可以。

不要先去改

URL

,如果先改

URL

,那后面对应的

Application context

不会更改,这样很容易就会出现

404

错误。

3.2 线上项目

如果你测试本地项目没问题,如下就可以测试你的实际项目了。

此刻,你应该知道写

Application context

时,应该注意什么了。

若不是上面的配置问题,就是你项目代码中的路径配置有问题。

如果你用

Maven

新建一个

Java Web

,很有可能会是这样一个路径结构:

在这里插入图片描述

一般是这个

web.xml

配置出错导致

404

错误。

首先用

Tomcat

启动服务器,看看项目首页是否正常显示:

  1. 若不能正常显示,看你的web.xml的首页地址是否写正确。
  2. 若首页正常显示,但是跳转页面没有办法正常显示,很有可能是你的form路径配置出错了。

我举个简单的例子,比如在

index.jsp

中,你想做一个表单提交和跳转,如下所示:

在这里插入图片描述

如果跳转到静态页面,看你的

action

路径配置的是否正确。

若是动态页面,比如,你想将某一个表单结果提交到

servlet

,就不要按照相对路径去写了。

这时,需要在

web.xml

进行相应的

url_pattern

mapping

的配置,但这样的配置很有可能会出一些错,导致你遇到

404

的问题。

所以,我这里强烈推荐大家使用注解的方式进行配置,而不要使用在

web.xml

配置

url_pattern

mapping

假设,我对这个

LoginServlet

进行配置,只需要在

LoginServlet

中添加

@WebServlet

注解就可以,如下代码所示:

@WebServlet(urlPatterns ="/LoginServlet")publicclassLoginServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{String username = req.getParameter("username");System.out.println(username);}@OverrideprotectedvoiddoPost(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{doGet(req, resp);}}

如此配置,上述

form

表单就会正常提交和跳转,不会出现

404

的错误。

如果以上方法无法解决你的问题,可以参考如下方法去解决你的问题。

4. 此错误的其他解决方法

  1. 目录不能被引用。

可以在

Eclipse

包资源管理器(Package Explorer)

检查文件存放的位置。

由于

META-INF

WEB-INF

文件夹下的内容不对外发布,如果你引用了带这两个目录的文件,肯定是不允许,如下URL地址就是错误的:

 http://localhost:8081/testProject/WEB-INF/index.html
  1. URL输入错误,如下为排错方法:- 先查看URLIP地址和端口号是否书写正确。- 其次查看上下文路径是否正确,比如Project -> Properties -> MyElipse -> Web -> Web Context-root,检查这个路径名称是否书写正确。- 最后检查一下文件名称是否书写正确。
  2. 未部署Web应用
  3. 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

版本

error

The requested resource () is not available. 

总是无法访问

/myapp/*.jsp

文件,可以将

/ROOT

build.xml

文件

copy

一份到

myapp

**【注意】把里面所有的

ROOT

myapp

代替, 应该就OK。**

  1. WEB-INF下面必须要有几个固定的文件夹和文件- web.xmlweb app的配置文件- libweb app用到的库文件- classes存放编译好的servlet

请注意这些名字,我曾经把

classes

写成

class

,查错查了半宿还没解决。

所以,写这些时千万要仔细,要不会浪费更多的精力去查错。

  1. 如果运行的是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

下面的。**

  1. 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配置结束-->
  1. 检查同一个项目,是否启动了多个java服务

有时,后台没有关闭之前的服务,你又重新启动,可能会报错

404

标签: tomcat java 后端

本文转载自: https://blog.csdn.net/lvoelife/article/details/129080248
版权归原作者 super先生 所有, 如有侵权,请联系我们删除。

“全网多种方式解决The requested resource [/] is not available的错误”的评论:

还没有评论