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

文章目录

  • 1. 复现错误
  • 2. 分析错误
  • 3. 解决错误
    • 3.1 本地项目
    • 3.2 线上项目
  • 4. 此错误的其他解决方法

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_patternmapping的配置,但这样的配置很有可能会出一些错,导致你遇到404的问题。

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

假设,我对这个LoginServlet进行配置,只需要在LoginServlet中添加@WebServlet注解就可以,如下代码所示:

@WebServlet(urlPatterns = "/LoginServlet")
public class LoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String username = req.getParameter("username");System.out.println(username);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

如此配置,上述form表单就会正常提交和跳转,不会出现404的错误。

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

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

  1. 目录不能被引用。

可以在Eclipse包资源管理器(Package Explorer)检查文件存放的位置。

由于META-INFWEB-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版本errorThe requested resource () is not available. 总是无法访问/myapp/*.jsp文件,可以将 /ROOTbuild.xml文件copy一份到myapp

【注意】把里面所有的ROOTmyapp代替, 应该就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.xmlWEB-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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/60151.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bing搜索添加站点说明

第一步是创建必应网站管理员工具帐户&#xff0c;您可以在其中添加网站。请注意&#xff0c;您必须证明您 拥有该网站&#xff08;或网站的相应部分&#xff09;的所有权&#xff0c;以将其添加到您的网站站长工具帐户中。您可以创建一个 包含整个网域 &#xff08;example.com…

6款视频剪辑软件,免费又实用建议收藏!

小伙伴们大家好&#xff0c;大家都知道视频是当下比较流行的运营玩法&#xff0c;不论是B站UP主&#xff0c;还是抖音、快手网红咖都离不开视频剪辑&#xff0c;今天就给大家推荐几款免费又实用的视频编辑工具。 VideoPad https://www.nchsoftware.com/videopad/index.html v…

拥有这3款软件,可以将视频裁剪掉不需要的部分

现在由于各种短视频平台的盛行&#xff0c;许多小伙伴会尝试着自己拍摄创作剪辑&#xff0c;并将其分享发布。不过不同的平台有不同的上传要求&#xff0c;例如视频时长&#xff0c;有些要求的是仅能导入15秒内&#xff0c;有些则是1分钟内等等&#xff0c;如果没有按照它们适配…

不可以错过的视频剪辑软件,小白轻松上手剪辑!

现在很多人都喜欢拍视频&#xff0c;而面对着电脑或者手机中所保存的大量视频文件&#xff0c;如果不经过剪辑处理&#xff0c;想要跟好友或者亲人分享视频内容&#xff0c;确实很麻烦。因此&#xff0c;大部分人都纷纷加入了视频剪辑队伍当中&#xff0c;但是很多都是零基础&a…

不知道手机视频剪辑app哪个好用?来试试这2个良心实用的软件

现在越来越多的人加入了短视频行业&#xff0c;制作视频已成为生活中非常普遍的事情&#xff0c;我们凭自己的能力剪辑出作品其实也很简单。不过现在的视频剪辑软件可以说是层出不穷&#xff0c;那么你们知道手机视频剪辑app哪个好用吗&#xff1f;下面我就总结了2个比较良心实…

GPT-4 重磅论文:它是如何推理、计划和创造的?

我们对GPT-4的研究完全是现象学的&#xff1a;我们专注于GPT-4能做的令人惊讶的事情&#xff0c;但我们并没有解决为什么以及如何实现如此卓越的智能的基本问题。它是如何推理、计划和创造的&#xff1f; 当它的核心只是简单的算法组件--梯度下降和大规模变换器与极其大量的数据…

10倍效能不是梦:“软件工程3.0”之下软件研发

在写这篇文章前&#xff0c;看到一条消息&#xff0c;即阿里巴巴集团董事会主席兼首席执行官张勇&#xff08;逍遥子&#xff09;发布全员信《唯有自我变革&#xff0c;才能开创未来》&#xff0c;启动新一轮公司治理变革。而这是24年来最重要的一次组织变革&#xff0c;阿里集…

保姆级教程-如何使用LLAMA2 大模型

Meta 刚刚发布了一个名为 Llama 2 的大模型 如果你和我一样迫不及待地想要亲自动手用它来构建自己的应用,那就认真阅读这篇文章吧。 使用任何类型的 LLM 进行构建的第一步是将其托管在某处并通过 API 使用它。 然后可以轻松地将其集成到你的应用程序中 为什么要使用 llama …

[OpenGL] 骨骼动画原理和实现(Qt)

最近在自己的练习项目中加入了骨骼动画系统。本篇文章主要讨论骨骼动画的基本原理&#xff0c;以及动画的导入和绘制。 多个骨骼动画循环播放效果&#xff0c;素材来源&#xff1a;unreal商城 概念引入 对于网格体而言有不少实现动画的方式。直接对顶点进行操作也就是顶点动画&…

笔记一:微信小游戏可视化开发工具-变更动画播放速度

直接用修改变量的方式去修改动画播放的速度不会生效。比如下面的方式&#xff1a; 虽然变量可以修改成功&#xff0c;但是动画的播放速度还是初始的播放速度&#xff0c;无法变更。也就是动画一旦开始播放后&#xff0c;速度就没法再改变了。试过这两个积木&#xff0c;也没法变…

如何制作微课?详解:微课视频制作方法之微课制作软件

微课是一种以教学视频为主要素材&#xff0c;运用多媒体技术制作而成的微课程。制作微课可以提高学习效率、吸引学生听完之后能达到很好的效果&#xff1b;也能为课堂增添一些趣味。然而&#xff0c;老师们在选择微课制作软件时不知道应该选择哪种软件&#xff0c;并且不知道该…

幼儿园微课怎么制作?怎么给微课配音?

在传统式的课堂教学中&#xff0c;由于教材书本比较抽象&#xff0c;通常会容易使学生倍感单一&#xff0c;无趣乏味。现在幼儿园老师们也需要制作微课了&#xff0c;而这类幼儿微课最重要的就是吸引孩子们。 因此&#xff0c;幼儿微课可以遵循四个方面内容&#xff1a; 1、趣…

Edge 被强制成 Outlook 默认浏览器,网友:梦回 IE 竞争时期!

整理 | 苏宓 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一朝梦回浏览器大战时期。 据外媒 The Verge 报道&#xff0c;继微软在 Edge 上引入 AI 技术增强该产品自身竞争力之后&#xff0c;微软再次发力&#xff0c;宣布将强制 Outlook 和 Teams 忽略 Windows…

chatgpt赋能python:用Python玩游戏:乐趣与技能并存

用Python玩游戏&#xff1a;乐趣与技能并存 Python是一种高级编程语言&#xff0c;一直以来都是程序员们最喜欢的工具之一。它不仅可以被用于开发软件和网站&#xff0c;还可以被用于创建游戏。在这篇文章中&#xff0c;我们将讨论如何用Python玩游戏&#xff0c;介绍一些有趣…

chatgpt赋能python:介绍:Python经典小游戏合集

介绍&#xff1a;Python经典小游戏合集 作为一门简洁易学、受到广泛喜爱的编程语言&#xff0c;Python已经在各个领域中得到了广泛应用&#xff0c;包括游戏开发。在这篇文章中&#xff0c;我们将为您介绍一些Python编程中的经典小游戏&#xff0c;让您感受到Python的多功能性…

github copilot X - chat 使用体验分享

文章目录 准备测试代码修改测试贪吃蛇游戏生成测试行内对话模式 使用总结 昨天一觉醒来发现等待了好久的基于GPT-4的copilot chat 终于通过了&#xff0c;在这里分享一下我的试用体验~ 准备 使用copilot chat 需要满足以下几个条件&#xff1a; 有正在生效的copilot订阅&…

腹部肿瘤内科专家朱利明:化疗也能“订制”,晚期结直肠癌不再“无药可救”

肠癌是发生在结肠和直肠的癌症&#xff0c;近二三十年来发病率快速上升。就在近期&#xff0c;“日本女大胃王菅原初代患肠癌病逝”的消息登上热搜&#xff0c;一时引发网友关注热议。 “人生有哲学三问&#xff1a;我是谁&#xff1f;我从哪里来&#xff1f;我到哪里去&#x…

讨论:癌症能被人类攻克吗

知乎网友观点&#xff1a;全球医药学界目前的主流都是尽力研制对绝症的维持用药物&#xff0c;以期符合医药公司在利润上的最大化&#xff0c;根治类药物的研制一般是国家级的非营利机构的目标&#xff0c;但是因为投入的资金相对较少&#xff0c;导致进展十分缓慢。这根本不是…

癌症的治疗方法有哪些?有一种方法比化疗好,副作用小

癌症的治疗方法有哪些&#xff1f;有一种方法比化疗好&#xff0c;副作用小 现如今&#xff0c;随着肿瘤发生率的持续上升&#xff0c;人们对于“化疗”也不再陌生。化疗是肿瘤治疗主要治疗手段&#xff0c;无论是肿瘤早期还是肿瘤晚期&#xff0c;无论是手术前还是手术后&…

癌症免疫细胞治疗知识:CAR-T与TCR-T的区别在哪里?--转载

肿瘤免疫治疗&#xff0c;实际上分为两大类。一种把肿瘤的特征“告诉”免疫细胞&#xff0c;让它们去定位&#xff0c;并造成杀伤&#xff1b;另一种是解除肿瘤对免疫的耐受/屏蔽作用&#xff0c;让免疫细胞重新认识肿瘤细胞&#xff0c;对肿瘤产生攻击(一般来说&#xff0c;肿…