Eclipse下启动tomcat(server)之后访问localhost报404异常的解决

先找到问题出在哪里

一.排查tomcat本身

停掉eclipse中的tomcat,打开tomcat的本地安装目录,bin文件夹下点击startup(手动直接启动),会跳出cmd窗口。有两种可能:

   1.如果可以启动,即cmd窗口显示了完整的加载信息,可以看到最后一行为“信息: Server startup in xxxx ms”,不要关闭这个窗口,访问localhost,可以看到tomcat首页。这就说明环境配置和tomcat 软件本身是没问题的,问题出在eclipse中的配置,参看第二步;

  2.若是点击startup出现cmd一闪而过,则说明tomcat本身有问题,(以下内容参考自这位同学:https://blog.csdn.net/stypace/article/details/38083581

先用记事本打开startup.bat(或者鼠标右键,点编辑),找到最后一句话::end,我们知道end表示结束的意思,:end是一个标记,我们在后面加上一句pause(暂停等待的意思)

 

再次执行startup.bat,就会看到上图,当我们按任意的键时cmd窗口又是一闪而过了。但是这已经确定了我们的环境变量都是正确的。如果根本不停留,那就是环境配置不对,需要检查环境变量是否异常(具体请另行百度)。

为了更加详细的看到信息,我们再来更改一句:找到call "%EXECUTABLE%" start %CMD_LINE_ARGS% 把里面的start替换为run。

 

再来看看cmd窗口里面输出错误信息了,具体信息各有不同,像我就是因为之前有个项目部署在tomcat中时修改过server.xml中的host配置,导致每次启动都会去加载那个已经不存在的项目,自然不能正常启动了。也可以直接打开tomcat安装目录下的logs文件夹,查看catalina里面的日志信息,同样能找出异常原因。针对这些原因去修正你的配置(这些信息eclipse控制台一般是不显示的)。再次启动startup.bat会看到已经启动成功了(记得把之前修改的内容run、pause还原回去)。此时在访问localhost就不会报错了。

二.排查eclipse中的配置

关掉cmd,在eclipse中新建一个server,不要添加项目,直接启动,再访问localhost,如果依然是404,stop之后,双击Server窗口中的服务器,打开服务器属性窗口

Server Locations选择第二个选项Use Tomcat Installation

系统默认选择第一个选项;

第一个选项指的是将项目保存在workspace路径下;

第二个选项指的是将项目保存至tomcat安装目录下,我们一般选择这个,这样就不用再手动部署到tomcat文件下了;

第三个选项是自定义项目保存路径。

选择完毕之后,ctrl+s保存。再访问一下localhost就可以正常显示了。至此,tomcat的配置都正常了,添加需要部署的项目,如果negotiations正常访问就对了,如果还是不行,那就是项目本身配置有问题,需要检查项目本身了。

————————————————————————2020分割线——————————————————

补充

  最近因为项目原因更新了jdk,使用了jdk1.8,开发时用的一个专用IDE,它集成了web容器,所以很长时间没用tomacat。今天在tomcat下部署一个war包,启动时又是华丽丽的一闪而过……而且这次更坑,连错都不报了,startup.bat加pause也看不到情况,后来在call "%EXECUTABLE%" start %CMD_LINE_ARGS%这一行,改start为run,终于看到一点端倪:Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object——类的老祖宗找不到了!!!

这就是jdk环境问题了,先检查环境变量,cmd运行java -version,没问题;运行javac,不行,错误就是上面那些。看看路径配置是否正确(具体参考:https://blog.csdn.net/yzliang2016/article/details/77680601),我的路径配置是正确的,打开jdk下jre下bin,发现没有rt.jar。基础类库都在这个包里,没它自然不行,要补上。jdk1.8安装时有两个文件夹,C:\Program Files\Java下分为jdk与jre(jdk里面也有一个jre,与外面这个不一样),从jre中找到rt.jar,直接复制过来,cmd运行javac,不报错,但是一堆乱码(中文解释乱码)。这时启动tomcat,还是不行的。于是先将jdk/bin/jre下的bin重命名bin_old(保险),再将外面那个jre的整个bin复制过来,cmd运行javac,可以了。启动tomacat,也可以了。

应该还有一种解决方法,即修改环境变量中jre的路径为与jdk同级的那个jre,但是没有试过。

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
2010-8-11 18:24:13 org.apache.catalina.core.AprLifecycleListener lifecycleEvent 信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jre1.5.0_11\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;D:\Java\jdk1.5.0_11\bin;D:\Tomcat 5.0\bin 2010-8-11 18:24:13 org.apache.coyote.http11.Http11BaseProtocol init 信息: Initializing Coyote HTTP/1.1 on http-8080 2010-8-11 18:24:13 org.apache.catalina.startup.Catalina load 信息: Initialization processed in 984 ms 2010-8-11 18:24:13 org.apache.catalina.core.StandardService start 信息: Starting service Catalina 2010-8-11 18:24:13 org.apache.catalina.core.StandardEngine start 信息: Starting Servlet Engine: Apache Tomcat/5.5.23 2010-8-11 18:24:13 org.apache.catalina.core.StandardHost start 信息: XML validation disabled 2010-8-11 18:24:13 org.apache.coyote.http11.Http11BaseProtocol start 信息: Starting Coyote HTTP/1.1 on http-8080 2010-8-11 18:24:13 org.apache.jk.common.ChannelSocket init 信息: JK: ajp13 listening on /0.0.0.0:8009 2010-8-11 18:24:13 org.apache.jk.server.JkMain start 信息: Jk running ID=0 time=0/187 config=null 2010-8-11 18:24:13 org.apache.catalina.storeconfig.StoreLoader load 信息: Find registry server-registry.xml at classpath resource 2010-8-11 18:24:13 org.apache.catalina.startup.Catalina start 信息: Server startup in 1235 ms 查了一下,需要一个apr支持,然后按提示去 下载 http://tomcat.heanet.ie/native/1.1.9/binaries/win32//tcnative-1.dll 将这个文件复制到C:WINDOWSsystem32下面 或者将这个文件放到Tomcat下的bin目录下 再启动tomcat,一切okay

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值