56

(Eclipse 3.4,木卫三)

我在 Eclipse 中有一个现有的动态 Web 应用程序项目。创建项目时,我在“配置”下拉菜单下指定了“Apache Tomcat v6 的默认配置”。

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

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

  • Targeted Runtimes在 Project 下选择了Properties
    The Tomcat v5.5option was disabled 并且 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现在显示。
    但是,用户界面现在显示此消息:
    Cannot change version of project facet Dynamic Web Module to 2.4.
    按钮Finish已禁用 - 所以我走到了死胡同。

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

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

谁能解释我如何将项目配置从“Tomcat 6”“降级”到“Tomcat 5”?或者也许可以解释为什么会发生这种情况?

谢谢皮特
_

4

7 回答 7

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">
于 2008-09-16T19:49:49.147 回答
7

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

打开navigator视图,发现你的项目下有一个.settings文件夹,展开后打开文件:org.eclipse.wst.common.project.facet.core。删除这个文件的内容,右键项目并单击属性。在弹出窗口中转到 Project Facats,您可以单击运行时选项卡并将您的项目转换为您想要的新方面。

于 2010-03-01T14:52:08.267 回答
5

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

于 2011-01-28T15:53:45.687 回答
0

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

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

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

于 2008-09-16T23:21:40.870 回答
0

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

所以主要区别在于我使用“动态 Web 模块”来实现。

我希望它也适合你。

于 2010-10-29T11:44:38.917 回答
0

我看到了同样的事情,然后我更改了web.xml. 这样做可以为您解决这个问题。

于 2011-04-06T19:20:13.407 回答
-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>
于 2011-05-10T20:55:58.923 回答