解决tomcat输入localhost:8080报404错误

一阵子没有玩 tomcat,今天想运行一下我之前的项目。首先在 Apache Tomcat/bin 下找到 tomcat9w.exe 点击 start 之后发现进度条走到一半就停了,也不报错;使用 start.bat 倒是启动很快,无报错信息。

怎么回事呢?

于是我去 控制台 cmd ,打开服务 services.msc,找到 ApacheTomcat 服务点击启动,这个时候报错了:“windows不能在本地计算机启动Apache Tomcat.有关更多信息,查阅系统事件日志.如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码0”……在网上查了一圈没有找有效的答案,因为我之前一直用,没出现过问题。也不可能是tomcat32位和jdk64位的版本不一致导致的,暂未解决……

随后我查看了logs日志,确保jdk的安装没有问题。意外的是发现了java虚拟机路径里面填写的jdk的版本不匹配,要打开 Tomcat 属性栏的 Java 面板,在 Java Virtual Machine 查看 jdk 版本是否和本机实际安装的对应:

改过来之后,tomcat 可以正常启动了

还有一种 tomcat 启动超时的原因是与项目相关的数据库服务未打开)。

启动成功之后,新问题出现了:

当我在浏览器输入 http://localhost:8080 的时候,会报 404 错误,这时有人会说:是不是 conf/server.xml 端口号没配置正确或者端口冲突?我确认了,没有发现冲突。

最后经过我仔细检查此文件,发现一条比较奇怪的:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

我这里的 appbase 的值不知什么时候变成了 wtpwebapps,我修改为 webapps 之后,就成功打开了 localhost:8080,访问项目也没问题啦!(之前使用 eclipse 发布项目,它默认部署到工作目录下的 .metadata/.plugins /org.eclipse.wst.server.core/tmpX/wtpwebapps中,tmpX 临时文件夹里面存放着该项目的信息,会不会是这个原因?)

注意

由于我之前的项目都放在 webapps 下面,而我的配置不知什么时候被修改成了 wtpwebapps,从而导致访问不了localhost:8080,更不要说访问项目路径了,我心里有点纳闷。

做个实验:

我又把 server.xml 的 host 配置改回:

<host appBase="wtpwebapps" ...>

把我之前做的一个项目:BoutiqueCourse 放进 tomcat 下的 wtpwebapps 中去,再重启 tomcat 服务,然后在浏览器输入localhost:8080 发现依旧是报 404,如图:

但是在后面拼接上项目名则可以成功进入。

查找原因,发现很简单:

当我的配置为默认的为 8080 端口,并且 server.xml 中 host 配置的 appbase="webapps" 的时候,当我直接输入 localhost:8080 回车,由于在 tomcat/webapps 下有一个 ROOT 文件夹,这个目录存放 tomcat 的基本应用,这时会执行此默认项目。输入http://localhost:8080 会通过hosts文件中的解析,将 localhost 解析为 127.0.0.1,这个地址也即为 http://127.0.0.1:8080。默认如果端口后面无项目名,那么访问的将是 ROOT 下的项目看到的就是汤姆猫页面

然而我把 appbase 的值改为了 wtpwebapps,里面只有一个项目文件夹,所以直接输入 localhost:8080 找不到默认工程文件,故显示404。而之后我又在后面追加自己的项目名称,则自然就会直接访问该项目。

PS:这里提一下appbase的作用:

appBase:设置 Web 应用程序组的路径。一个虚拟主机可以由多个 Web 应用程序构成,所以这里的 appBase 所指向的目录应该是准备用于存放这一组 Web 应用程序的目录,而不是具体某个 Web 应用程序的目录本身(即使该虚拟主机只由一个 Web 应用程序组成)。appBase 属性的值可以是相对于 Tomcat 安装目录的相对路径,也可以是绝对路径,需要注意的是该路径必须是 Tomcat 有权限访问的。如果你想自己指定路径,那么应该在 docBase 里面,简单点,直接把他们复制到appBase下面就行了。 

  • 22
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
tomcat6 admin 管理页面 本tomcat是用apache-tomcat-6.0.26-windows-x86.zip和apache-tomcat-5.5.27-admin.zip/commons-modeler-2.0.1.zip/commons-logging-1.1.1-bin.zip制作. ============================================lk制作========================================================================================== 1.bin目录下的startup.bat和shutdown.bat添加:"set java_home=C:\jdk6.0"(注:C:\jdk6.0为本机的jdk安装路径). 2.lib目录下添加:commons-logging.jar和commons-modeler-2.0.1.jar,下载地址: http://apache.mirror.phpchina.com/commons/modeler/binaries/commons-modeler-2.0.1.zip http://apache.mirror.phpchina.com/commons/logging/binaries/commons-logging-1.1.1-bin.zip 3.下载Tomcat 5.5.27的admin,下载地址:http://apache.freelamp.com/tomcat/tomcat-5/v5.5.27/bin/apache-tomcat-5.5.27-admin.zip 4.下载解压,把其中的conf\Catalina\localhost下面的admin.xml复制到Tomcat安装目录下面的conf目录,把server\webapps下的admin复制到Tomcat下面的webapps目录下面。(注:如果没有conf\Catalina\localhost目录,启动一次tomcat就会有.) 5.打开admin.xml文件,修改其中的: <Context docBase="${catalina.home}/server/webapps/admin" privileged="true" antiResourceLocking="false" antiJARLocking="false"> 改为: <Context docBase="${catalina.home}/webapps/admin" privileged="true" antiResourceLocking="false" antiJARLocking="false"> 这是因为tomcat 5.5的目录结构和6.0的不太一样,如果不修改,将出现404错误。 6.conf目录下的tomcat-users.xml添加如下代码: <role rolename="manager"/> <role rolename="admin"/> <user username="admin" password="admin" roles="manager,admin"/> 登陆时用户名:admin ,密码:admin 7.webapps/root目录下的index.html添加: <a href="admin">Tomcat Administration</a><br/> 如果不添加也不影响使用,只是打开tomcat时没有admin的链接,也可以直接在IE地址栏中输入http://localhost:8080/admin/ 打开管理页面.
最近学习Nginx+tomcat实现 负载均衡。 首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把自己成功的方法拿出来与大家分享。 Window7 我是在Win7上做的。不是什么Linux,网上好多资料,特别麻烦。 Nginx Nginx 比较好找到,直接去网上下载 网址: http://nginx.org/en/download.html 版本不作要求了,(比如1.2.9版本),都有。 JDK JAVA的各种环境都要有。 版本不要求 Tomcat 这里我给大家提供tomcat6 Tomcat各种版本的下载地址我也提供给大家:http://tomcat.apache.org/download-60.cgi 大家可以先用我tomcat6 学会了,在下载自己需要的版本。 词条科普 另外我把实现过程中遇到的知识点都总结好了,一起提供给大家学习。 步骤: 注:本例程以一台win7机器为例子,即同一台机器上装一个nginx和2个Tomcat。 且安装了JDK。 便于管理将用到的资料放在一个文件夹下 我在D盘 创建 server 文件夹 . 1. Nginx 下载直接解压缩到server,点nginx.exe 执行 安装后如果可用,可在任务管理其中找到如图类似,并且在浏览器中输入 http://localhost/ 浏览器显示如下两个图 说明成功 2.Tomcat 同样将自己下载的或者我提供的tomcat 放到D盘的server下不过要复制成两份或者多份。 命名如:(便于区别 我们只用两个来讲解 ,多个tomcat和两个原理是一样的) 1、server.xml配置 我们需要在一台机器上跑 2 个不同的 tomcat ,避免出现端口被占用的情况,为了规范统一,我们修改全部tomca端口。分别找到tomcat6的1和2 的conf下的 server.xml。 修改Server端口 找到Server将: 改为 XXXX 在这里表示不同的端口:我的两个 tomcat 分别使用 8005和8006; 2.1.2、修改Connector端口 找到Connector将: 改为 XXXX 在这里表示不同的端口:我的两个 tomcat 分别使用 8081和8082; 2.1.3、修改Engine端口 找到Engine将: 改为 tomcatX 在这里表示不同的tomcat,我的两个 tomcat 分别使用 tomcat1和tomcat2;来区分。 这个设置是主要用以tomcat的集群。 如果看不懂可以去看我提供的tomcat我已经改好了。 启动tomcat服务 分别到两个tomcat下,直接双击D:\server\apache-tomcat-6.0.39_1\bin\startup.bat启动tomcat1 D:\server\apache-tomcat-6.0.39_2\bin\startup.bat启动tomcat2 出现以下页面表示启动成功 在浏览器中输入 http://localhost:8081 http://localhost:8082 出现 标示成功 3、Nginx+Tomcat负载均衡配置 首先创建两个文件,这两个文件 我来提供,将这两个文件拷入Nginx的conf文件夹下 1.proxy.conf 文件内容 #负责代理转发 proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Antrn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值