eclipse 创建Maven 架构的dynamic web project 问题解决汇总

时间:2021-01-23 08:02:25

Eclipse创建Maven结构的web项目的时候选择Artifact Id为maven-artchetype-webapp,点击finish之后,一般会遇到如下问题

1. The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 错误,

这是eclipse环境里没有SeverRuntime导致的,在BuildPath里加入即可,如下图:

添加前:

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

选择 add library

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

选择 Apache Tomcat V7.0 并点击 next

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

点击finish之后,完成添加如下图

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

2. 如何Maven创建动态Web项目后产生的版本不匹配的问题

我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的、java版本是1.5的,而一般现在至少都是3.0/1.7,因此我们需要逐个修改!

(1) 修改JRE 版本

Go to project Build Path and change the Java Library version to 1.7

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

删除原先的低版本JRE,并添加workplace默认的版本(JDK1.7),完成后如下:

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

(2) Eclipse Preferences -> Java -> Compilre -> Change compliance level to 1.7

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

(3) 修改 Project Facets 版本(注意顺序)

在项目上单机右键 -> Properties -> Project Facets  -->取消选中 Dynamic Web Module 状态,点击 Apply -->将 Javafacet 版本变为 1.7 ,点击 Apply如下图

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

-->将 Dyanmic Web Module 版本更改为3.0, 点击 Apply.

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

此时会有较大几率提示: web.xml is missing and <failOnMissingWebXml> is set to true,如下图

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

解决办法,在项目上单击右键-->java EE Tools ---> Generate Deployment Descriptro Stub

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

OK 问题解决

3. 解决发布之后404错误

默认情况下因为默认的deployment assembly中 webapp路径的问题,如下图可以看到默认的webapp下的页面都被发布到WEB-INF/class下了,

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

导致出现了如下图的目录结构,所以所有的jsp都无法访问以及通过web.xml加载的ssm环境无法初始化!

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

修改webapp对应的发布路径为/之后,部署的目录结构变为:

eclipse 创建Maven 架构的dynamic web project 问题解决汇总

可以看到jsp还有web.xml、spring的配置文件都出现在根目录了! 问题解决!