1. Bug描述
- Cannot change version of project facet Dynamic Web Module to 3.0.
- One or more constraints have not been satisfied.
2. 原因
这个问题一般出现在使用eclipse新建web项目的时候, 原因在于: Dynamic Web Module版本问题
具体来说, eclipse在建立项目的时候默认的版本是2.3等老版本, 但web项目一般默认要求的版本是3.1, 两者不一致导致了这个ERROR.
3. 解决
- 原因弄清楚的情况下, 解决思路: 修改版本要求.
- web项目版本位置: web.xml文件web-app label(如下图, 如果不写命名空间, 默认是3.1版本, 下图使用了3.0版本)
<web-app xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xmlns= "http://java.sun.com/xml/ns/javaee"
xmlns:web= "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id= "WebApp_ID" version ="3.0">
</web-app>
- eclipse版本位置: 项目文件夹/.settings/org.eclipse.wst.common.project.facet.core.xml
<installed facet="jst.web" version="3.0"/>
- 有些童鞋可能会考虑在eclipse的preference里面修改, 但个人经验是Dynamic Web Module版本在ui处是不让修改的.修改前记得close project, 修改后也记得update一下项目.
以上