关于Eclipse:Eclipse-如何将“项目方面”从Tomcat 6更改为Tomcat 5.5?

关于Eclipse:Eclipse-如何将“项目方面”从Tomcat 6更改为Tomcat 5.5?

Eclipse - How can I change a 'Project Facet' from Tomcat 6 to Tomcat 5.5?

(Eclipse 3.4,Ganymede)

我在Eclipse中有一个现有的Dynamic Web Application项目。创建项目时,我在"配置"下拉列表中指定了" Apache Tomcat v6的默认配置"。

现在已经过去了一个月或两月,现在我想将配置更改为Tomcat'v5.5'。 (这将是生产服务器上的Tomcat版本。)

我尝试了以下步骤(没有成功):

  • 我在项目Properties下选择了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,我选择了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"?或者也许可以弄清楚为什么会这样?

谢谢
皮特


这是一种日食,您可能会遇到麻烦,但这应该可行:

打开导航器视图,发现项目下有一个.settings文件夹。将其展开,然后打开文件:org.eclipse.wst.common.project.facet.core.xml,您应该看到一行显示:



将其更改为2.4并保存。

只要确保您的项目没有使用2.5专用的东西,您就应该很好。

还要检查您的web.xml是否具有正确的配置:

1
2
3
4
<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">

这可能很旧,但我尝试在Eclipse Galilio中找到以下内容。

打开导航器视图,发现项目下有一个.settings文件夹。将其展开,然后打开文件:org.eclipse.wst.common.project.facet.core.Delete此文件的内容,然后右键单击该项目然后单击属性。转到弹出窗口中的Project Facats,您可以单击运行时选项卡,然后将项目转换为所需的新构面。


如果使用的是Maven,请先关闭Eclipse,然后键入>mvn eclipse:eclipse -Dwtpversion=2.0,然后重新启动Eclipse。


我看到了同样的事情,然后更改了web.xml中的Web应用程序版本值。这样做可以为您解决此问题。


您可以尝试取消选中构面,应用,更改构面的值并进行检查。它在Eclipse Helios SR1中对我有用。

所以主要的区别是我使用"动态Web模块"来完成。

我希望它也对您有用。


抱歉,没有足够的代表,我无法发表评论,所以...

我认为eclipse很难安全地降级到较低的标准,因为它无法真正知道您是否使用了较新的Web标准。因此,如果只允许您这样做,则可能会导致您的程序在较旧的版本上失败。

您始终可以向后兼容,但不能向前兼容。


如果您使用的是maven,则可以使用maven eclipse插件生成eclipse设置。

对于jst.web版本,Maven eclipse插入考虑了项目的依赖关系。如果定义了servlet api依赖项:

1
2
3
4
5
<dependency>
    <groupId>org.apache.tomcat</groupId>
    servlet-api</artifactId>
    <version>6.0.32</version>
</dependency>

您的jst.web参数将为6.0

1
2
3
4
5
<faceted-project>
  ...
  <installed facet="jst.web" version="6.0"/>
  ...
</faceted-project>

推荐阅读