eclipse运行web,tomcat报错Server Tomcat v9.0 Server at localhost failed to start
第一种:查看Servlet3.0中出现了新增注释@WebServlet。
ervlet3.0中出现了新增注释@WebServlet ,在Eclipse生成一个新的Servlet类时会自动增加@WebServlet注释,改注释会自动为我们配置web.xml,所以这时候我们再去配置web.xml就会产生冲突,tomcat就不能启动。这个时候我们只需要删除@WebServlet或者删除web.xml配置就能正常启动tomcat了。
第二种:.端口被占用(这个网上记载的很清楚,至于你想关闭别的进程的端口,还是修改tomcat的配置端口,自己百度,或者Google)
如果是这种小白可以直接重启电脑试试
第一步,在开始菜单->运行->cmd->输入netstat -ano,在本地地址那栏可以查看哪个进程占用了8080和8009端口(具体看你的Tomcat服务器是用什么端口的);
第二步,使用taskkill /pid 6856 /f 将端口关闭,其中6856代表占用窗口的PID,每台机子都不一样,根据实际情况来
------------------------------------------------------------
一般有以上两种情况导致的无法运行,报错。由于我卸载了tomcat9,重新安装了tomcat9,后来又卸载,重新安装了tomcat8.5,还是会出现Server Tomcat Server at localhost failed to start。我也卸载了我的oxygen版本的eclipse(此版本是2017版本的),然后下载了最新的eclipse,又卸载掉最新的eclipse版本,重新下载oxygen版本,这个问题还是存在。再后来我有下载回来了最新版本的eclipse。
我说的那么啰嗦的原因是,如果出现Server Tomcat v9.0 Server at localhost failed to start,而且输出错误信息:
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java...........
情况1:(先找到你的tomcat安装路径,在bin下找到shutdown.bat,双击关闭服务器,然后回到eclipse,右击下面的服务器,remove项目,然后clean一下,再重新运行项目)
如果还是不行,那么重装tomcat,因为tomcat才十几M,下载直接解压就可以用了。(前提是你配置好了环境,环境很好配,网上一大把资料)
这种情况我觉得一般可以通过重装tomcat服务器解决。
情况2:可以打开正常的静态网页,但是一旦转发servlet,就报错!(如下图)
这种情况的话,说明你tomcat服务器没毛病,只是你程序本身的问题,404,表示你的问题,因为服务器找不到资源,这是你自己的锅。
一般出现这种问题,绝对是你的servlet配置出现了问题,首先你要知道servlet这玩意已经出来这么久了,tomcat服务器对它的稳定性绝逼非常稳定,因为sun公司的程序员可不是吃素的,玩了这么久的servlet,对servlet的支持性如果不稳定的话,那还要他们干嘛!
所以问题出现在你身上后就容易解决了。
解决思路1:如果你是用web.xml配置的,那么你绝对某个配置写错了,才会引起错误,这个需要你自己看看web.xml下面的servlet配置的名称和地址是否正确,然后进行修改!
解决思路2:如果你使用的是servlet3.0方式进行配置的话,你一定要确报你的jdk版本是1.6及1.6以上的,因为这是1.6或1.6以上才支持servlet注解配置的。所以确定jdk版本以后,你还要注意你的WebServelt("/demo1"),例如这个注解配置,你是否遗漏了很重要,却不起眼的“/”,这个小斜杠,然后检查你的所有servlet,逐个修改。
解决思路3:如果你是采用web.xml,加上servlet3.0的注解双管齐下进行开发的,那么恭喜你,这样出错率更大,因为你如果在web.xml下面配置完成了的话,还使用servlet3.0注解配置,那么可能无意间使用了相同名称可能会报错,或者web.xml有一个配置,为Boolean值,错误定义了他的值,你将会报错,即使你的servlet注解和web.xml的配置没有相同名称。
总结一下:
1.就是如果你是整个tomcat,服务器出错了,那么可以选择重新安装,然后重新配置项目;也可以关闭服务器,移除项目,再重新运行项目。
2.如果你是单纯servelt,访问404错误,那么不要怀疑是tomcat的jar包和你引进的jar包引起的冲突导致你无法使用servlet,因为这种情况微乎其微,对于一个刚入门,才学习到servlet的人来说,更是如此,你应该多看看自己的代码,因为95%以上是你的代码不规范,或者逻辑错误引发的问题!那么唯一可以做的就是检查你的代码!
goodbye!!!
作者:兜里还剩五块出头
出处:https://www.cnblogs.com/hmy-666/p/12419599.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步