今天碰到一个biiiig trouble,如图:
头疼的要死,重装tomcat,重装eclipse都不行。最后找到错误的我,眼泪就要掉下来了,蓝瘦香菇。
原因分析:
首先在console面板里输出了:
图中有一句话:
Caused by: java.lang.IllegalArgumentException: The servlets named [servlet.HelloServlet] and [servlet.StuRegisterServlet] are both mapped to the url-pattern [/HelloServlet] which is not permitted
即:命名中的servlet[servlet.HelloServlet]和[servlet.StuRegisterServlet]都被映射到URL模式[/HelloServlet]这是不允许的。
我们在写servlet的时候,会选着继承HttpServlet类,生成代码时会自动添加注解,如:@WebServlet("/HelloServlet"),并映射文件。
而我的问题就出现在,我在写新的servlet时是直接拷贝的已写的一个servlet,连带着原来servt中的注解“@WebServlet("/HelloServlet")”也一并拷贝了,于是就出现了两个相同的注解,即两个相同的映射,进而报这个错误。
解决办法:
删去相同的注解,或者修改其中一个注解。
诶,解决了错误,一身轻松。不过也提醒了自己,开发中,不要偷懒,就算是要拷贝,也要注意一些细节问题,同时最重要的是一定要看错误日志(一开始各种重装就是因为没有看日志)。
参考:关于Server Tomcat v8.0 Server at localhost failed to start的解决办法