Eclipse下搭建Maven Servlet3.0环境

验证一个示例项目想要用Maven创建一个Servlet3.0的工程,原以为和普通的Maven工程一样很方便就搭建好了,谁知还碰到了几个坑,因此记下处理过程。

一、创建Maven Webapp工程

1)通过Eclipse创建一个Maven webapp工程:File菜单/右键 –> New –> Project[Maven Project]

image

2)不勾选[Create a simple project]选项,然后点击 Next ,到下移视图,如下:

image

3)在此处选择【maven-archetype-webapp】,然后Next,填写Maven的groupId,ArtifactId基本信息,修改Package等

image

4)点击Finish,完成基本的创建工作。创建Maven的结构如下图:

image

从上图可以看出,这个并不是默认的maven项目的标准结构(在源代码文件夹中只有src/main/resource,没有src/main/java,src/test),并且还报了几个错误,我们需要进行一些改动。

二、解决所创建工程的问题

1、按照标准Maven项目结构补上缺少目录

1)在项目下创建一个Source Folder: Folder Name:src/main/java,然而却提示 The folder is already a source folder. <明明没有啊>

image

2)此时需要工程的Build Path:点击工程,右键-> Build Path –> Configure Build Path[Source] ,如下图,将其中【missing】的错误的路径,其remove掉;

image

然后在重新创建Source Folder即可。

2、将工程修改为Servlet3.0版本

在工程上右键->Properties-> Project Facets,可以看到默认创建的web工程是Servlet2.3的,如下图:

image

但是,直接将工程的版本修改为3.0,会提示:Cannot change version of project facet Dynamic web module to 3.0,并且无法确认修改

image

解决方法:进入工程的.settings目录,修改org.eclipse.wst.common.project.facet.core.xml文件

image 

将此处的2.3修改为3.0或(3.1等更高),保存之后,再在Eclipse中刷新工程,然后使用Maven->Update Project。

再次查看工程的Project Facets可以看到工程已经变为了3.0。如下图:

3、再次处理Servlet版本问题

通过上面两个操作基本解决了工程的一些错误,但是当在pom.xml文件中添加了如下的配置时,发现工程中又有错误,同时Eclipse的Problems视图中也有相关的错误提示。

image

Eclipse仍然提示:Cannot change version of project facet Dynamic web module to 3.0,

并且如果该问题没有解决,直接在Eclipse中将工程发布到Tomcat时,虽然可以正常启动Tomcat不会报错,但是Tomcat就是不会加载已经发布项目。

image

这时再次检查工程会发现,在web.xml中对应的文件头部仍然是Servlet2.3的,如下:

image

需要将此文件头修改为Servlet3.0的 或者 直接删除该文件,采用Servlet3.0注解的方式(无需web.xml的形式)。

附:Servlet3.0/3.1 web.xml文件头部内容:

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 
  3 <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
  4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  6 
  7     <display-name>Archetype Created Web Application</display-name>
  8 </web-app>
  1 <?xml version="1.0" encoding="UTF-8"?>
  2 
  3 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  5          http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  6     version="3.1">
  7     <display-name>Archetype Created Web Application</display-name>
  8 </web-app>

之后再次Maven-Update Project即可解决该错误。

三、小结

在Eclipse中创建的Maven webapp项目默认是Servlet2.3版本,如果需要修改Servlet版本不能直接修改,必须修改项目的org.eclipse.wst.common.project.facet.core.xml文件并同时修改web.xml文件头部引用。

 

【参考】

[1] org.eclipse.wst.common.project.facet.core.xml文件 

[2]  Eclipse下搭建Maven Servlet3.0环境 

[3] 在Eclipse中显示.project和.classpath和.setting目录 

[4] sevlet 3.0 web项目搭建及web.xml讲解 

[5] Eclipse开发环境创建Servlet3.0 Maven WebApp 项目 

[6] Maven之项目搭建与第一个helloworld(多图)

转载于:https://www.cnblogs.com/KnightKitt/p/9980918.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值