(Eclipse 3.4,Ganymede)
我在Eclipse中有一个现有的Dynamic Web Application项目。当我创建项目时,我在“配置”下拉列表中指定了“Apache Tomcat v6的默认配置”。
这是一个月或者两个月,我现在想将配置更改为Tomcat'v5.5'。 (这将是生产服务器上的Tomcat版本。)
我尝试了以下步骤(没有成功):
Targeted Runtimes
下选择了Properties
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
,我选择版本2.4
代替2.5
在Runtimes
标签下,现在显示Tomcat 5.5
但是,UI现在显示此消息:Cannot change version of project facet Dynamic Web Module to 2.4.
Finish
按钮被禁用 - 所以我达到了死胡同。我可以使用Tomcat v5.5配置成功创建一个新项目。但出于某种原因,它不会让我降级“现有项目”。
作为解决方法,我创建了一个新项目并从旧项目中复制了源文件。尽管如此,解决方案相当痛苦并且有点笨拙。
任何人都可以解释我如何将项目配置从'Tomcat 6''降级'到'Tomcat 5'?或者或许可以阐明为什么会发生这种情况?
感谢
皮特
答案 0 :(得分:87)
这是一种黑客攻击,你可能会遇到麻烦,但这应该有效:
打开导航器视图,发现项目下有一个.settings文件夹展开它,然后打开文件:org.eclipse.wst.common.project.facet.core.xml
你应该看到一行说:
<installed facet="jst.web" version="2.5"/>
将其更改为2.4并保存。
只要确保你的项目没有使用2.5的特定内容,你应该做得很好。
另请检查您的web.xml是否具有正确的配置:
<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">
答案 1 :(得分:7)
这可能是旧的,但我尝试在eclipse Galilio中找到以下内容。
打开导航器视图,发现项目下有一个.settings文件夹展开它,然后打开文件:org.eclipse.wst.common.project.facet.core.Delete此文件的内容并右键单击在项目上,单击属性。转到弹出窗口中的Project Facats,您可以单击运行时选项卡并将项目转换为所需的新方面。
答案 2 :(得分:5)
如果您正在使用Maven,则关闭eclipse,然后键入>mvn eclipse:eclipse -Dwtpversion=2.0
,然后重新启动eclipse。
答案 3 :(得分:0)
很抱歉,如果没有足够的Rep,我似乎无法发表评论......
我认为eclipse很难安全地降级到较低的标准,因为它无法真正知道你是否使用过更新的Web标准。因此,如果它只是允许您这样做,它可能会导致您的程序在旧版本上失败。
您可以始终向后兼容,但不能向前兼容。
答案 4 :(得分:0)
您可以尝试取消选中构面,应用,更改构面的值并进行检查。它适用于Eclipse Helios SR1。
所以主要区别在于我使用'动态网络模块'。
我希望它也适合你。
答案 5 :(得分:0)
我看到同样的事情,然后我更改了web.xml
中的网络应用版本值。这样做可以解决这个问题。
答案 6 :(得分:-1)
如果你正在使用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>