错误:“The requested resource () is not available.”的处置

本文介绍了一个常见问题,即当静态HTML页面的链接因URL后缀匹配到Spring MVC配置而被错误地交给控制器处理的情况。文章详细解释了问题产生的原因,并提供了解决方案——通过更改静态文件的后缀名来避免被Spring MVC拦截。

做网页过程中,某页需要以新窗方式打开另一个网页,于是url是这样写:

pages/test/transw/claimer.html

但是,点链接后网页提示

The requested resource () is not available.

再检查一遍url,没有发现拼写错误。

郁闷一阵,看看后缀,明白了,claimer.html的后缀是html,这和Web.xml中设置的url-pattern对应上了:

    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name> 
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

这个阴差阳错的对应照成了,本该去找静态网页的链接,变成交给sping处理了,而spring的controller里是没有对应处理函数的。

难怪系统报The requested resource () is not available.错。

处置方式也简单,将静态文件名修改成claimer.htm,少写一个l。这样就不会让spring mvc去处理了。

然后链接地址就这样写:

pages/test/transw/claimer.htm

 

<think>好的,用户遇到了HTTP 404错误,请求的资源不可用。我需要根据提供的引用信息和自己的知识来给出解决方案。首先,404错误通常是因为路径错误或资源不存在。查看引用中的例子,用户提到路径错误,比如把http://localhost:8080/FIRST.html改成了http://localhost:8080/First/FIRST.html才解决问题[^1]。这说明URL的大小写或者路径是否正确非常重要,尤其是在区分大小写的服务器上。 接下来,引用[2]和[4]提到了Tomcat配置问题,特别是Eclipse中的配置。用户在Eclipse里可能没有正确设置Tomcat的部署路径,导致应用没有被正确部署。引用[4]提到需要调整Server Locations为“Use Tomcat installation”,并且清空已部署的项目。这可能是因为Eclipse默认使用工作空间内的元数据,而实际部署路径需要指向Tomcat的安装目录,否则应用可能无法正确访问。 此外,引用[3]虽然涉及数据库资源管理,但可能与当前问题无关,可以忽略。需要专注于路径和服务器配置的问题。 可能的解决方案步骤包括: 1. 检查URL是否正确,包括大小写和路径。 2. 验证Web应用是否正确部署到Tomcat的webapps目录。 3. 检查Eclipse中的Tomcat配置,确保使用正确的部署位置。 4. 清理服务器和项目,重新部署。 5. 检查web.xml配置和上下文路径。 另外,可能还需要检查项目结构,比如WEB-INF是否存在,静态资源的位置是否正确。如果有拼写错误或资源缺失,也会导致404。服务器日志也是重要的排查工具,查看Tomcat的catalina.out或localhost日志,看是否有更详细的错误信息。 最后,用户可能需要确认Tomcat服务是否正常启动,端口是否被占用,或者是否有防火墙阻止访问。这些都是常见的问题点,需要逐一排查。</think>### HTTP 404错误解决方法 HTTP 404错误表示客户端能访问服务器,但服务器找不到请求的资源。以下是分步排查和解决方案: --- #### 一、检查URL路径 1. **验证URL拼写** - 检查地址栏中的路径是否包含大小写错误、多余符号或路径层级错误。例如`FIRST.html`和`First.html`在区分大小写的系统中会被视为不同文件[^1]。 - 确保静态资源(如HTML、图片)直接放在`webapp`目录下,而非`WEB-INF`中。 2. **检查上下文路径** - 若项目部署为`myapp`,则访问路径应为`http://localhost:8080/myapp/xxx`。 - 在Eclipse中查看项目属性:右键项目 → `Properties` → `Web Project Settings` → 检查`Context root`名称。 --- #### 二、排查部署问题 1. **确认资源已部署** - 检查Tomcat的`webapps`目录,确认项目文件夹已生成且包含目标资源。例如: ```bash # Tomcat默认部署路径示例 /apache-tomcat/webapps/MyApp/FIRST.html ``` 2. **修复Eclipse的Tomcat配置** - 双击Eclipse的`Servers`视图中的Tomcat实例 → 选择`Use Tomcat installation`[^4]。 - 清空已部署项目:右键Tomcat服务器 → `Add and Remove` → 移除所有项目 → 重新部署。 --- #### 三、检查服务器配置 1. **查看日志定位错误** - 打开Tomcat的`logs/catalina.out`或`logs/localhost.log`,搜索`FileNotFoundException`或`ResourcePaths`相关错误。 2. **验证端口与服务状态** - 确认Tomcat监听端口(默认8080)未被占用: ```bash netstat -ano | findstr :8080 ``` - 重启Tomcat: ```bash ./catalina.sh stop ./catalina.sh start ``` --- #### 四、项目结构验证 1. **标准Web项目结构** 确保项目符合Maven或IDE的标准结构: ``` src/main/webapp/ ├── WEB-INF/ │ └── web.xml └── FIRST.html # 静态资源直接放在webapp下 ``` 2. **清理缓存** - 删除Tomcat的`work`目录: ```bash rm -rf /apache-tomcat/work/* ``` - 在Eclipse中执行`Project → Clean`并重启服务器。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值