我正在使用maven在Eclipse中创建一个动态web应用程序。我添加了一些文件夹,如src/test/java和src/test/resources。我还更改了Java Build Path中的库,以获得JavaSE-1.7。到这里都没问题。
当我试图改变项目Facet动态Web模块时,出了问题。在同一个地方,我将Java更改为1.7。它仍然告诉我,不能将项目facet动态Web模块的版本更改为3.0。
我已经改变了所有我认为会影响改变的东西。
我正在使用maven在Eclipse中创建一个动态web应用程序。我添加了一些文件夹,如src/test/java和src/test/resources。我还更改了Java Build Path中的库,以获得JavaSE-1.7。到这里都没问题。
当我试图改变项目Facet动态Web模块时,出了问题。在同一个地方,我将Java更改为1.7。它仍然告诉我,不能将项目facet动态Web模块的版本更改为3.0。
我已经改变了所有我认为会影响改变的东西。
当前回答
另一种方法是编辑项目facet配置文件本身
将这一行中的动态web模块版本更改为3.0 - <installed facet="jst. xml "。网络”version = " 2.5 " / >
然后:
右键单击项目(在project Explorer面板中)。 选择Maven»更新项目(或按Alt+F5)
您将在Eclipse项目的.settings目录中找到该文件。
其他回答
右键单击项目→属性;在Project Facets中,取消选择Dynamic Web Module(版本应为3.1)和JavaServer Faces(版本应为2.2)。
改变:
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
然后删除param-name等前面的前缀。
最后,Maven ->更新项目。
我想我也有和你一样的问题。我的Web .xml有2.5版本,而项目有(右键单击项目->属性->项目facet ->)动态Web模块2.3。
尽管我试图将版本从2.3更改为2.5,但ECLIPSE不允许。 解决方案:我删除了标题下的复选标记动态Web模块,我保存,我有更新项目。自动重新唤醒是用正确的版本进入框。我用的是Eclipse Kepler。
附注:看看乔纳森下面的评论,非常有用。
打开org.eclipse.wst.common.project.facet.core.xml文件并更改jst. core.xml文件。Web版本到3.0。还要将web.xml更新到3.0版本。保存并更新项目。希望这能有所帮助。我正在使用Eclipse Juno
xml技巧之所以有效,是因为您现在显式地告诉WTP您正在使用特定的servlet版本,而不管容器支持什么。
在我的例子中,我在Maven项目中使用注释配置,并且我没有web.xml文件。事实证明,在没有web.xml的情况下,WTP会查看Maven依赖项来决定使用哪个Servlet版本。在我的例子中,我定义了以下内容:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
将其更改为6.0解决了这个问题,现在它使用Servlet 3.0而不是3.1,这是JavaEE 7的默认设置。因为我必须从Tomcat 8切换到Tomcat 7,所以Tomcat 7只支持JavaEE 6 Web配置文件。现在一切都很顺利。
我的Web模块3.0在Web .xml,但在属性>动态Web模块它是3.1
我把web.xml修改成这样:
<?xml version="1.0" encoding="UTF-8"?>
<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_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
在此更改后,做:右键单击项目>Maven>更新项目…