Eclipse – 如何将Tomcat 6中的“Project Facet”更改为Tomcat 5.5?
(Eclipse 3.4,Ganymede)
我在Eclipse中有一个现有的dynamicWeb应用程序项目。 当我创build项目时,我在“configuration”下拉列表中指定了“Apache Tomcat v6的默认configuration”。
这是一个月或2下来,我现在想改变configuration为Tomcat'V5.5'。 (这将是生产服务器上的Tomcat版本。)
我尝试了以下步骤(没有成功):
- 我在“项目
Properties
下select了“Targeted Runtimes
”
Tomcat v5.5
选项已禁用,UI显示此消息:
If the runtime you want to select is not displayed or is disabled you may need to uninstall one or more of the currently installed project facets.
- 然后,我点击了
Uninstall Facets...
链接。
在Runtimes
选项卡下,只显示Tomcat 6
。
对于Dynamic Web Module
,我select了版本2.4
而不是2.5
。
在Runtimes
选项卡下,现在显示了Tomcat 5.5
。
但是,用户界面现在显示此消息:
Cannot change version of project facet Dynamic Web Module to 2.4.
Finish
button被禁用 – 所以我到了死胡同。
我可以使用Tomcat v5.5configuration成功创build一个新项目。 不过,出于某种原因,它不会让我降级现有的项目。
作为一个解决scheme,我创build了一个新的项目,并复制了旧项目中的源文件。 尽pipe如此,解决方法相当痛苦,而且有些笨拙。
任何人都可以解释我怎么可以'项目configuration'从'Tomcat 6'降级到'Tomcat 5'? 或者也许为什么会发生这样的事情呢?
谢谢
皮特
这是一种黑客日食,你可以陷入困境这样做,但这应该工作:
打开导航器视图,发现项目下有一个.settings文件夹展开它,然后打开文件: org.eclipse.wst.common.project.facet.core.xml
你应该看到一行: <installed facet="jst.web" version="2.5"/>
更改为2.4并保存。
只要确保你的项目没有使用任何特定的2.5,你应该是好的。
另外检查你的web.xml是否有正确的configuration:
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
这可能是旧的,但我试过,发现以下在日食Galilio。
打开导航器视图,发现项目下有一个.settings文件夹展开它,然后打开文件:org.eclipse.wst.common.project.facet.core。删除这个文件的内容并右击项目并点击属性。 在popup窗口中的Project Facats中,可以单击运行时选项卡,然后将项目转换为所需的新方面。
如果你使用的是Maven,那么closureseclipse,然后input>mvn eclipse:eclipse -Dwtpversion=2.0
,然后重新启动eclipse。
对不起,似乎我不能发表评论没有足够的代表所以…
我认为对于eclipse来说,安全降级到一个更低的标准是非常困难的,因为它不能真正知道你是否使用了新的web标准。 所以,如果它只是让你这样做,它可能会导致您的程序在旧版本上失败。
您始终可以向后兼容,但不能兼容。
您可以尝试取消选中该面,应用,更改面的值并检查。 它适用于Eclipse Helios SR1。
所以主要区别在于我使用“dynamicWeb模块”。
我希望它也适用于你。
我看到了同样的事情,然后我改变了web.xml
的web-app版本值。 这样做可以解决这个问题。
如果你正在使用maven,你可以使用maven eclipse插件生成eclipse设置。
对于jst.web版本,Maven eclipse插件会考虑项目的依赖关系。 如果你定义了一个servlet API依赖关系:
<dependency> <groupId>org.apache.tomcat</groupId> <artifactId>servlet-api</artifactId> <version>6.0.32</version> </dependency>
你的jst.web参数是6.0
<faceted-project> ... <installed facet="jst.web" version="6.0"/> ... </faceted-project>