tomcat可以正常启动,但是不能访问即页面报404错误怎么办

 我来答
博学小赵爱生活
高能答主

2021-06-19 · 专注于食品生活科技行业
博学小赵爱生活
采纳数:457 获赞数:111698

向TA提问 私信TA
展开全部

1、正确的端口号

出现404错误证明,TOMCAT是启动成功了的。 但是在一台计算机上,可以启动多个端口号不一样的TOMCAT, 所以请确保自己访问的是正确的那个端口号,别自己启动的是8080端口号的TOMCAT,但是访问的地址却用的是80端口(默认),这样肯定会出现404错误的。

2、环境变量

假设有两个Tomcat A和 B,自己分明运行的是B 下的startup.bat, 但是启动的却是A。

在环境变量中有两个属性:分别是CATALINA_HOME和CATALNIA_BASE,如果这个值指向的是A,那么即便运行的是B下的startup.bat, 真正启动的还会是A。

3、确定Web应用是否成功启动

虽然Tomcat启动成功了,但是对应的Web应用启动失败,依然会导致404错误。

倘若Web引用启动失败,那么就一定会在Tomcat的logs目录下的 localhost.当前日期.log 里留下错误信息。

打开这个文件,检查对应的Web应用是否启动过程中报错了。 也许是web.xml多写了一个标签结束,也许是对应的servlet类找不到。

4、webapps下的ROOT目录

有的时候,在server.xml 中配置的<context 是以“/"为开始路径的,与此同时,在webapps目录下还存在一个ROOT目录,这个ROOT目录其实也是告诉tomcat,以“/” 为开始路径。

那么这样就发生冲突了,Tomcat只能二选一,通常情况下都会选择ROOT目录,那么在server.xml中配置的就<context 就无法启动了,导致访问对应的资源提示404错误。

5、访问地址的时候是否加了web应用的名称

这个也是常犯的错误,加入部署的时候,指定了路径,比如:

<Context path="/j2ee" docBase="e:\\project\\j2ee\\web" debug="0" reloadable="false" />

那么访问的时候,要记得加上j2ee,像这样:http://127.0.0.1:8080/j2ee/hello

6、是否访问对资源了

这种错误也常见,写的文件是 hello.html, 但是访问的是 holle.html,会提示404。

7、不能访问WEB-INF目录下的资源

从安全角度触发,TOMCAT不允许访问WEB-INF目录下的HTML,JSP文件。 所以如果资源文件放在WEB-INFO下,也会提示404错误。

Web服务器的作用:

1、接收客户端的请求。

2、给客户端作出响应。

我们也可以自己手写Web服务器,但是那样太麻烦,而且难度很大,所以我们可以使用目前应用最广泛的Tomcat服务器。

常见的Web服务器:

lTomcat(Apache)

lJBoss(Redhat)

lGlassFish(Orcale)

lResin(Caucho)

lWeblogic(Orcale)

lWebsphere(IBM)

匿名用户
2017-09-29
展开全部
Tomcat的404问题是刚开始从事JAVA WEB开发的工程师经常会碰到的问题。 404是现象,导致这个问题的原因有很多种,我把常见的原因做了个整理,如果你以后碰到404问题,可以按照这个思路逐一排查,可以有很大的几率找到真正的原因所在:1. 正确的端口号出现404错误证明,TOMCAT是启动成功了的。 但是在一台计算机上,可以启动多个端口号不一样的TOMCAT, 所以请确保自己访问的是正确的那个端口号,别自己启动的是8080端口号的TOMCAT,但是访问的地址却用的是80端口(默认),这样肯定会出现404错误的。 2. 环境变量假设有两个Tomcat A和 B,自己分明运行的是B 下的startup.bat, 但是启动的却是A,为什么会这样呢? 这就是环境变量在作祟了。在环境变量中有两个属性:分别是CATALINA_HOME和CATALNIA_BASE,如果这个值指向的是A,那么即便运行的是B下的startup.bat, 真正启动的还会是A。3. 确定Web应用是否成功启动虽然Tomcat启动成功了,但是对应的Web应用启动失败,依然会导致404错误。怎么判断Web应用成功与失败呢? 倘若Web引用启动失败,那么就一定会在Tomcat的logs目录下的 localhost.当前日期.log 里留下错误信息。打开这个文件,检查对应的Web应用是否启动过程中报错了。 也许是web.xml多写了一个标签结束,也许是对应的servlet类找不到。4. webapps下的ROOT目录有的时候,在server.xml 中配置的<context 是以“/"为开始路径的,与此同时,在webapps目录下还存在一个ROOT目录,这个ROOT目录其实也是告诉tomcat,以“/” 为开始路径,那么这样就发生冲突了,Tomcat只能二选一,通常情况下都会选择ROOT目录,那么在server.xml中配置的就<context 就无法启动了,导致访问对应的资源提示404错误。5. 访问地址的时候是否加了web应用的名称这个也是常犯的错误,加入部署的时候,指定了路径,比如:
<Context path="/j2ee" docBase="e:\\project\\j2ee\\web" debug="0" reloadable="false" />
那么访问的时候,要记得加上j2ee,像这样:
http://127.0.0.1:8080/j2ee/hello
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
十一维观影
2017-09-29 · 七十而从心所欲,不逾矩。
十一维观影
采纳数:139 获赞数:13417

向TA提问 私信TA
展开全部
访问路径,配置文件,版本。都仔细查查。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式