2018/1/6
这两天一直在复习springmvc,准备后天开始整合项目。但是发现许多知识遗忘的很厉害,简单的一个Bug都不知道怎么去解决了。花了几个小时解决完“description The requested resource is not available.”这个报错,倒也增强了对mvc流程的理解。
TP Status 404 - /hello
type Status report
message /hello
description The requested resource is not available.
Apache Tomcat/8.0.47
解决:请求的资源不可用。
切入点:
1、响应的资源hello.jsp配置有误;
2、触发的url有误,导致指向不可用的资源;(<a href="hello/aa"/>,标签属性不需要加杠)
3、处理器的配置有误,返回字符串出错;(@requestMapping(“/hello”)?,内容需要加杠)
4、dispatcherServlet.xml 配置出错;(视图配置处理?处理器映射?)
这里可以参考一个收藏的博文,解释了很多!!
HTTP Status 404(The requested resource is not available)异常主要是路径错误或拼写错误造成的,请按以下步骤逐一排查:
1.未部署Web应用
2.URL输入错误
a.查看URL的IP地址和端口号是否书写正确。
b.查看上下文路径是否正确 Project--------Properties------MyElipse-----Web----- Web Context-root检查这个路径名称是否书写正确。
c.检查一下文件名称是否书写正确。
3.目录不能被引用
在 Eclipse的“包资源管理器(Package Explorer)”检查文件存放的位置。由于META-INF WEB-INF文件夹下的内容无法对外发布,所以,如果你引用了带这两个目录的文件,肯定是不允许。
例如: http://localhost:8080/guestbook/WEB-INF/index.html 就是错误的,文件位置存放错误
4. Tomcat服务器中web.xml中的问题
如果你的web应用程序有多个jsp页面的话,当你点击你web应用程序的虚拟根目录时可能会出现404错 误,只是你只需要修改Tomcat服务器中web.xml
5.WEB-INF下面必须要有几个固定的文件夹和文件
web.xml 该web app的配置文件
lib 该web app用到的库文件
classes存放编译好的servlet
请注意他们的名字,我曾经就由于把classes写成class,查错查了半宿还没解决,所以写这些的时候千万要仔细,否则浪费更多的精力去查错。
6. 如果要运行的不是.jsp文件,而是servlet(.class)文件,要配置web.xml(当然是WEB-INF下面的),加上以下字段:
其中的“HelloWorldServlet”改为你要运行的文件名
7.其他解决思路
以上方法无果,介于"HTTP Status 404(The requested resource is not available"异常发生情况的多样性,采用替换大法:
步骤:
a.找一份正常的相同环境(找同学同事相同开发环境机子或者网上下载的正常demo等)
b.依次替换问题项目文件,进行排除,定位.直到解决.