今天统一Maven项目配置环境的版本,发现Maven默认是2.5,但是现在基本上都用的tomcat7以上的服务器了。
所以动态网页基本上都用的3.0版本,结果发现facets设置里换不了版本…
参考:http://blog.sina.com.cn/s/blog_529aacbd01014cc8.html
一、问题场景
tomcat运行时报出Cannot change version of project facet Dynamic web的错误。
二、尝试解决
是facets配置的问题。
大致是因为java的web系统有多种类型,比如静态的和动态的,然后动态的java web project要设置dynamic web module,也就是动态网页模型,必须要和对应的服务器搭配好了才能运行项目。
因为我的项目配置对不上,所以就报错了。
- dynamic web module 2.4 对应 Tomcat 5.5。
- dynamic web module 2.5 对应 Tomcat 6.0。
- dynamic web module 3.0 对应 Tomcat 7.0。
右键项目尝试修改,发现无法选择dynamic web module 3.0。
既然右键配置里面换不了,不如直接更改配置文件?
- 右键项目在系统资源管理器里面打开。
- 找到.settings文件夹,进入。
- 修改配置文件org.eclipse.wst.common.project.facet.core.xml。
原文件:
1 2 3 4 5 6 7 |
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="jst.web" version="2.5"/> <installed facet="wst.jsdt.web" version="1.0"/> <installed facet="java" version="1.8"/> </faceted-project> |
改成:
1 2 3 4 5 6 7 |
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="jst.web" version="3.0"/> <installed facet="wst.jsdt.web" version="1.0"/> <installed facet="java" version="1.8"/> </faceted-project> |
保存,F5刷新你的项目,重新再facets里查看,发现已经改成3.0了。
修改完成,记忆一下。
三、总结
如果facets版本不正确,tomcat运行时会爆Cannot change version of project facet Dynamic web的错误,此时只要修改dynamic web module版本即可。