Eclipse - 如何将Tomcat 6中的“Project Facet”更改为Tomcat 5.5?

时间:2008-09-16 19:04:43

标签: eclipse tomcat tomcat6 tomcat5.5 ganymede

(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.5Runtimes标签下,现在显示Tomcat 5.5 但是,UI现在显示此消息:
    Cannot change version of project facet Dynamic Web Module to 2.4.
    Finish按钮被禁用 - 所以我达到了死胡同。

我可以使用Tomcat v5.5配置成功创建一个新项目。但出于某种原因,它不会让我降级“现有项目”。

作为解决方法,我创建了一个新项目并从旧项目中复制了源文件。尽管如此,解决方案相当痛苦并且有点笨拙。

任何人都可以解释我如何将项目配置从'Tomcat 6''降级'到'Tomcat 5'?或者或许可以阐明为什么会发生这种情况?

感谢
皮特

7 个答案:

答案 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>