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

news2024/9/24 13:53:22

文章目录

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

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 {
    @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. 此错误的其他解决方法

  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

5. 补充说明

之前喜欢使用谷歌翻译报错的信息,自从出现了ChatGPT,便喜欢使用ChatGPT来翻译。

如果你想了解什么是ChatGPT以及它的用法,可以点击如下链接:

  1. 全网最详细的介绍ChatGPT

  2. ChatGPT、低代码等技术出现会不会导致底层程序员失业

  3. 全网推荐7款github上有趣的ChatGPT的应用源码

  4. 如何调用ChatGPT的API接口到官方例子的说明以及GitHub上的源码应用

  5. 全网详细解读基于java调用ChatGPT的API接口

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动化完成1000个用户的登录并获取token并生成tokens.txt文件

自动化完成1000个用户的登录并获取token并生成tokens.txt文件 写作背景 在我学习使用redis实现秒杀功能的过程中&#xff0c;在编写完秒杀代码后&#xff0c;需要使用Jmeter实际测试1000个用户进行秒杀&#xff0c;由于秒杀功能需要在用户登录完成后才能实现&#xff0c;用户是…

DFS深度优先搜索—Java版

递归三要素 递归的定义 递归的拆解 递归的出口 什么时候使用DFS&#xff1f; 深度回溯问题&#xff08;DFS与回溯区别不大&#xff09; 二叉树问题 组合、排列问题 找方案问题&#xff08;解空间是一棵树或者图&#xff0c;需要自行构造图/树&#xff09; 图的搜索问题…

Smokeping的主从模式部署

Smokeping 支持 Standalone&#xff08;单机&#xff09;模式和 Master/Slave&#xff08;主从&#xff09;模式。 之前老苏折腾过单机模式&#xff0c;这次应网友 Roxmie 的要求&#xff0c;研究了一下主从模式的部署 文章传送门&#xff1a; 网络性能监控工具Smokeping 因为…

Go基础-环境安装

文章目录1 Go?Golang?2 下载Go3 windows安装4 测试是否成功1 Go?Golang? Go也称为Golang&#xff0c;是Google开发的一个开源的编译型的静态语言。 Golang的主要关注点是高可用、高并发和高扩展性&#xff0c;Go语言定位是系统级编程语言&#xff0c;对web程序具有很好的支…

SAP数据导入工具(LSMW) 超级详细教程(批量导入内部订单)

目录 第一步&#xff1a;记录批导步骤编辑数据源对应字段 第二步&#xff1a;维护数据源 第三步&#xff1a;维护数据源对应字段&#xff08;重要&#xff09; 第四步&#xff1a;维护数据源关系。 第五步&#xff1a;维护数据源与导入字段的对应关系。 第六步&#xff0…

K_A12_006 基于STM32等单片机驱动BH1750模块 串口与OLED0.96双显示

K_A12_006 基于STM32等单片机驱动BH1750模块 串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明时序对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RCBH1750模块1.2、STM32F103C8T6BH1750模块五、基础知识学习与相关资料下载六、视频效果展示与程…

《蓝桥杯每日一题》递归·AcWing 1497. 树的遍历

1.题目描述一个二叉树&#xff0c;树中每个节点的权值互不相同。现在给出它的后序遍历和中序遍历&#xff0c;请你输出它的层序遍历。输入格式第一行包含整数 N&#xff0c;表示二叉树的节点数。第二行包含 N个整数&#xff0c;表示二叉树的后序遍历。第三行包含 N 个整数&…

设计模式之迭代器模式与命令模式详解和应用

目录1 迭代器模式1.1 目标1.2 内容定位1.3 迭代器模式1.4 迭代器模式的应用场景1.5 手写字定义的送代器1.6 迭代器模式在源码中的体现1.7 迭代器模式的优缺点2 命令模式2.1 定义2.2 命令模式的应用场景2.3 命令模式在业务场景中的应用2.4 命令模式在源码中的体现2.5 命令模式的…

UVa 211 The Domino Effect 多米诺效应 暴力搜索

题目链接&#xff1a;UVa 211 The Domino Effect 题目描述&#xff1a; 一张多米诺骨牌拥有两个数值&#xff0c;一共有二十八张不同的多米诺骨牌&#xff0c;这二十八张多米诺骨牌的点数如下图所示&#xff1a; 上图的BoneBoneBone代表编号&#xff0c;而PipsPipsPips代表两个…

Springboot扩展点系列之终结篇:Bean的生命周期

前言关于Springboot扩展点系列已经输出了13篇文章&#xff0c;分别梳理出了各个扩展点的功能特性、实现方式和工作原理&#xff0c;为什么要花这么多时间来梳理这些内容&#xff1f;根本原因就是这篇文章&#xff1a;Spring bean的生命周期。你了解Spring bean生命周期&#xf…

前端最全面试题整理

前端基础 一、 HTTP/HTML/浏览器 1、说一下 http 和 https https 的 SSL 加密是在传输层实现的。 (1) http 和 https 的基本概念 http: 超文本传输协议&#xff0c;是互联网上应用最为广泛的一种网络协议&#xff0c;是一个客户端和服务器端请求和应答的标准&#xff08;T…

操作SSH无密登录配置

例如小编有三台服务器需要相互访问&#xff0c;就需要配置三台&#xff0c;这三台分别是hadoop102,hadoop103 , hadoop1041.打开三个服务器&#xff0c;分别生成hadoop102&#xff0c;hadoop103 , hadoop104的公钥和私钥输入命令&#xff0c;然后一直回车&#xff0c;这时候什么…

狂神聊Redis复习笔记二

目录事务监控&#xff01; Watch &#xff08;面试常问&#xff01;&#xff09;悲观锁&#xff1a;乐观锁&#xff1a;Redis测监视测试Redis.conf详解Redis持久化RDB&#xff08;Redis DataBase&#xff09;AOF&#xff08;Append Only File&#xff09;Redis发布订阅Redis主从…

Docker资源隔离(namespace,cgroups)

一、概述 Docker容器的本质是宿主机上的一个进程。Docker通过namespace实现了资源隔离&#xff0c;通过cgroups实现了资源限制&#xff0c;通过写时复制机制&#xff08;copy-on-write&#xff09;实现了高效的文件操作。 二、Linux内核的namespace机制 namespace 机制提供一种…

jfr引起的一次jvm异常记录

业务生产启动时&#xff0c;20个节点有1-2个节点因为jvm问题出现启动失败&#xff0c;k8s自动重启后正常。在测试环境2个节点下偶现 排查思路&#xff1a; 先拿到hs_err_pid的jvm错误文件找到当前线程和内部错误信息 hs_err_pid 文件分析 当前线程&#xff1a;lettuce的线程…

使用Robot Framework实现多平台自动化测试

目录 前言 1、设计目标 2、架构设计 3、平台实现 4、平台的创新点 5、平台的实施效果 6、总结 重点&#xff1a;配套学习资料和视频教学 前言 基于Robot Framework、Jenkins、Appium、Selenium、Requests、AutoIt等开源框架和技术&#xff0c;成功打造了通用自动化测试…

各数据库数据类型的介绍和匹配

各数据库数据类型的介绍和匹配1. Oracle的数据类型2. Mysql的数据类型3. Sql server的数据类型4. 类型匹配5. Awakening1. Oracle的数据类型 数据类型介绍 VARCHAR2 :可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749&#xff1b; NCHAR :根据字符集而定的固定长度字…

微服务架构的演变

文章目录1.1 系统架构的演变过程1.1.1 单体应用架构1.1.2 垂直应用架构1.1.3 分布式架构1.1.4 SOA架构1.1.5 微服务架构1.2 微服务架构设计原则1.2.1 AKF拆分原则1.2.1.1 X轴扩展&#xff08;水平复制&#xff09;1.2.1.2 Y轴扩展&#xff08;模块拆分&#xff09;1.2.1.3 Z轴扩…

【SSM】Spring对IoC的实现方式DI详讲

控制反转的一种实现方式——依赖注入一、IoC 控制反转&#xff08;Overview&#xff09;依赖注入&#xff08;DI&#xff09;- Overview利用 IoC&#xff08;控制反转&#xff09;这种思想有什么好处呢&#xff1f;二、依赖注入的方式setter 方式&#xff08;xml配置中的proper…

Java JSR规范列表

Java JSR规范列表目录概述需求&#xff1a;设计思路实现思路分析1.JSR2.JSR方法3.web service4.Webservice:5.数据处理器拓展实现参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,m…