【问题解决记录】
创建Dynamic Web Project时候,按照默认直接创建了Module Version为3.0的项目。
基本架构和功能搭建好,Servlet基本功能写好以后,发布到阿里云服务器上进行测试,发现没法访问到。一直报的错误是404,cannot found。但是放在根目录的静态文件是可以读取到的。
这个服务器是项目测试服务器,之前发布了好几个项目在上面,现在也还在,试了一下,发现原来的项目没问题。
后来搜索了好久知道了原因。
Module Version 3.0的系统,创建Servlet时候,是直接在Servelt类名上方写标注:
WebServlet{}
而Module Version 2.5系统,创建Servlet时,是在web.xml文件中自动生成Servlet对应的标签:
servlet 和 servlet-mapping
然后问题就出在这里——阿里云服务器上安装的tomcat版本是6.0版本,不支持Servlet标注**WebServlet{}**的方式,只有tomcat7以上的才会支持这种方式。
我们也可以把Servlet的标签手动写入到web.xml中去,但是我们更希望它能够自动生成,这样更方便。
问题找到了,怎么解决呢? 我们找到了把3.0版本改成2.5的办法。
[原文链接] https://blog.csdn.net/adsl624153/article/details/71598879
作者:loetca
方法操作步骤:
(1)Eclipse中的Pacakge Explorer项目栏中,选中要修改的项目。
(2)Pacakge Explorer的右上角,单击【右上角有一个向下的箭头 (View Menu)】 → 单击【下拉选项中的 Filters】 → 选中【.*resources】 → 取消勾选【下拉选项中的 .*resources】.
(3)看到项目中有了一个【.settings文件夹】 → 打开选择里头的【org.eclipse.wst.common.project.facet.core.xml】→
双击打开 → 将
中的 3.0改为2.5即可。
下面是操作说明图,可以照着图来操作,来源也是作者loetca的原文。