dynamicWeb模块3.0 – 3.1
我有一个基于代码的configuration的Spring 3.2.4 Web应用程序。 当我使用Maven / pom.xml首先构build应用程序时,出现web.xml缺失的错误。 首先我试图创build一个空的web.xml。 这是项目方面改变的时刻(我不知道为什么)。 它从dynamicWeb模块3.0切换到3.1,这是不可逆转的。 我怎样才能改变到dynamic网页模块3.0?
另外我不能删除JAX-RS。 尝试这个结果是:
Failed while uninstalling JAX-RS (REST Web Services) 1.0. org.eclipse.jst.javaee.web.internal.impl.WebAppImpl cannot be cast to org.eclipse.jst.j2ee.webapplication.WebApp
后来我发现我可以通过在pom.xml中插入相应的插件来避免Maven编译错误:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin>
我在日食方面遇到了类似的麻烦,唯一能解决的方法就是为了我
- 卸下Web模块
- 应用
- 更改模块版本
- 添加模块
- configuration(对话框底部的进一步configuration可用链接)
- 应用
只要确保在应用之前configuration了Web模块,默认情况下它将在/ WebContent /中查找您的Web文件,这不是Maven项目结构应该是的。
编辑 :
如果没有其他帮助,这是第二种方法
- 退出eclipse,转到您的项目在文件系统,然后到.settings文件夹。
- 打开
org.eclipse.wst.common.project.facet.core.xml
, 进行备份 ,并删除Web模块条目。 - 您也可以在那里修改Web模块版本,但是不能保证。
如果您想使用版本3.1,则需要使用以下模式:
-
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
请注意,3.0和3.1是不同的:在3.1中没有提及Sun,所以仅仅将3_0.xsd
更改为3_1.xsd
将不起作用。
这是它应该是这样的:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"> </web-app>
此外,请确保您的pom.xml
的最新版本。 那是,
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> ... </configuration> </plugin>
和
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
最后,你应该用Java 7或8进行编译:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin>
我有同样的问题,并通过编辑org.eclipse.wst.common.project.facet.core.xml来解决这个问题。
在这个文件中,我能够改变下面一行
<installed facet="jst.web" version="3.1"/>
回到
<installed facet="jst.web" version="3.0"/>
这似乎解决了我的问题。
我在Win7,Tomcat7上运行maven项目,在Eclipse Mars上安装maven-pom。 在一个不运行的服务器上,我只需要在这个屏幕上从3.1更改为3.0。
对我来说,禁用Dynamic Web Module非常重要! 然后更改版本,然后再次启用dynamicWeb模块。
打开Eclipse项目属性,在Project Facets中取消select“Dynamic Web Module”,…点击OK Maven – > Update project
在一个特定的情况下,这个问题是由于maven-archetype-webapp是为了一个dynamicwebapp而发布的,面向ver.2.5(参见生成的web.xml和相关的xsd),它与eclipse有关。 当您尝试将项目构面更改为dynamicWeb应用程序> 2.5时,src文件夹结构将在语法上发生更改(2.5与3.1不同),但不是保留。
这就是为什么如果您应用于更改,您将面临空指针exception。
要解决它,你必须从项目构面configuration默认configuration。 应用更改,然后进入Java Build Path,必须至less删除/ src文件夹并创build/ src / main / java文件夹(也需要/ src / main / resources和/ src / test / java符合标准)重新转换成您所需的configuration(3.0,3.1),然后进行应用。
我打开了项目org.eclipse.wst.common.project.facet.core.xml,并首先更改,然后删除与Web模块标记行。 每次清理项目并在Tomcat上启动,但仍然没有运行。 返回的线(如),并清理项目。 在Eclipse中打开Tomcat设置并手动将项目添加到Tomcat启动(右键单击+添加和删除)。 点击项目,并select在服务器上运行….一切都很好。
1)转到您的项目,find“.settings”目录这一个
2)打开文件xml名为:
org.eclipse.wst.common.project.facet.core.xml的
3)
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="java" version="1.5"/> <installed facet="jst.web" version="2.3"/> <installed facet="wst.jsdt.web" version="1.0"/> </faceted-project>
将jst.web版本更改为3.0,将java版本更改为1.7或1.8(基于当前使用的jdk版本)
4)在WEB-INF
目录下改变你的web.xml
文件,请参考这篇文章:
https://www.mkyong.com/web-development/the-web-xml-deployment-descriptor-examples/
5)转到pom.xml
文件并粘贴这些行:
<build> <finalName>YOUR_PROJECT_NAME</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> THIS IS YOUR USING JDK's VERSION <target>1.8</target> SAME AS ABOVE </configuration> </plugin> </plugins> </build>
- 将Eclipse(3.4+)插件安装在ECLIPSE_HOME / plugins之外的目录中
- 不能让项目Lombok在Eclipse(Helios)上工作
- 是否有可能在Eclipse中运行多个包中的JUnittesting?
- Eclipse:垃圾收集器button
- 如何在eclipse Web项目中将WebContent文件夹更改为不同的东西?
- Eclipse:如何build立一个外部jar的可执行jar?
- Eclipse和EGit:如何在提交到* local * repository之前轻松地查看对所有已修改文件的更改
- Eclipse错误:该项目需要迁移WTP元数据
- 有没有办法在Eclipse中折叠所有代码块?