最近有一個問題困擾了我3天,我在windows部署項目無誤后,准備將項目發布到阿里雲linux服務器上,發現啟動報錯了:LINUX環境中tomcat啟動錯誤:The servlets named X and Y are both mapped to the url-pattern [/Z] which is not permitted,首先想到的是肯定部署代碼或者項目配置文件的事,懷疑有可能是jar包出錯了,果不其然,在項目的WebContent\WEB-INF\lib發現了servlet-api.jar 果然刪除再次部署。
終於啟動成功沒有報錯,當我滿心歡喜打開主頁的時候,發現不能跳轉頁面!!也就是說我的servlet失效了……這三天找了各種土方土法無果,終於發現了一篇文章(原諒我,我找不到原博文了……)解決了問題:因為項目中servlet采用了注解的方式,而在我的web.xml中,存在
<servlet>
<servlet-name>XXX</servlet-name>
<servlet-class>XXX</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XXX</servlet-name>
<url-pattern>XXX</url-pattern>
</servlet-mapping>
<servlet>
的配置,所以才會報上面的錯,將上面這種形式的代碼全部注釋,大功告成!