设为首页 收藏本站
查看: 915|回复: 0

[经验分享] Tomcat启动失败提示Servlet部署路径重复

[复制链接]

尚未签到

发表于 2018-12-5 11:53:37 | 显示全部楼层 |阅读模式
  用Java开发的项目,因为很简单,所以用的依然是Servlet。之前一切正常,但是新增了一个Servlet之后,部署到服务器,却总是启动失败,控制台打印的东西很多,但是分析发现主要错误应该是这个地方:
  Caused by: java.lang.IllegalArgumentException: The servlets named [RevelationServlet] and [cn.lzgd.servlet.RevelationServlet] are both mapped to the url-pattern [/RevelationServlet] which is not permitted。意思应该是这两个Servlet同时部署到这/RevelationServlet这一个路径了。
  但是web.xml里面我只部署了这一个啊,没有重复啊。
  
    RevelationServlet  
    RevelationServlet  
    cn.lzgd.servlet.RevelationServlet  
   
   
    RevelationServlet  
    /RevelationServlet  
    找其他地方也找不到哪里的问题。试着将web.xml里面对应的这个Servlet的路径删掉,竟然可以启动了!看来就是这个地方的问题。但是也不能不部署啊,找来找去,问题还是没有解决。只要在web.xml里加上对这个Servlet的url-pattern的指向就会出错。
  上网查找了半天,大都是说web.xml的部署重复,到哪里复制一份web.xml过来就好了之类,根本无法解决问题。
  正在郁闷的时候,无意间发现Servlet的代码里面,在类前面,有这么一句:@WebServlet("/RevelationServlet"),这不就是提示说重复的那个路径么,原来在这里!去查看其它没有问题的Servlet,前面却没有这么一句。基本断定是在这里重复的了,因为在web.xml里面也指向了这个路径。试着删掉这一句,果然tomcat可以启动了。
  那么问题来了,既然在Servlet的代码里已经写了这么一句了,是不是在web.xml里面就不用再部署了呢,换句话说这两个地方的作用是等同的呢?于是果断将web.xml里面关于这个Servlet的部署给删掉,依然能运行。
  至此,终于真相大白。因为新建Servlet的时候都会自动生成这一句代码:@WebServlet("/RevelationServlet"),已经声明了通过这个路径就可以找到这个Servlet,而如果再去web.xml里面去声明,当然就重复了。其他的Servlet为什么没有出现问题,是因为在其他Servlet在编辑之前我都把这句当做无用的内容给删掉了。看来这自动生成的代码还是要慎重删除。
  不得不承认,虽然多年前就开始接触java,但是到今天对java仍然是一知半解,有很多东西不知道是什么意思,只是看别人怎么做,就怎么做。具体是谁教我要在web.xml里面部署Servlet路径的也是忘了,也许以前的Eclipse版本不会自动生成这一句代码,而新版本可以自动生成。学习还是不要只停留在表面,多去探索一下为什么比较好。
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-643608-1-1.html 上篇帖子: 简单搭建Nginx+Tomcat负载均衡群集 下篇帖子: Tomcat日志分割减少catalina.out日志过大
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表