Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse—如何将“项目方面”从Tomcat6更改为Tomcat5.5?_Eclipse_Tomcat_Tomcat6_Tomcat5.5_Ganymede - Fatal编程技术网

Eclipse—如何将“项目方面”从Tomcat6更改为Tomcat5.5?

Eclipse—如何将“项目方面”从Tomcat6更改为Tomcat5.5?,eclipse,tomcat,tomcat6,tomcat5.5,ganymede,Eclipse,Tomcat,Tomcat6,Tomcat5.5,Ganymede,日食3.4,木卫三 我在Eclipse中有一个现有的动态Web应用程序项目。创建项目时,我在“配置”下拉列表下指定了“ApacheTomcatV6的默认配置” 接下来的一两个月,我想将配置更改为Tomcat“v5.5”。这将是生产服务器上的Tomcat版本 我尝试了以下步骤,但没有成功: 我在项目属性下选择了目标运行时 Tomcat v5.5选项已禁用,UI显示以下消息: 如果不显示或禁用要选择的运行时,则可能需要卸载一个或多个当前安装的项目方面。 然后我点击了卸载方面。。。链接 在Runtim

日食3.4,木卫三

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

接下来的一两个月,我想将配置更改为Tomcat“v5.5”。这将是生产服务器上的Tomcat版本

我尝试了以下步骤,但没有成功:

我在项目属性下选择了目标运行时 Tomcat v5.5选项已禁用,UI显示以下消息: 如果不显示或禁用要选择的运行时,则可能需要卸载一个或多个当前安装的项目方面。 然后我点击了卸载方面。。。链接 在Runtimes选项卡下,仅显示Tomcat 6。 对于动态Web模块,我选择了2.4版而不是2.5版。 在运行时选项卡下,现在显示Tomcat 5.5。 但是,UI现在显示以下消息: 无法将project facet动态Web模块的版本更改为2.4。 “完成”按钮被禁用,所以我走到了死胡同。 我可以使用TomcatV5.5配置成功地创建一个新项目。然而,出于某种原因,它不会让我降低现有项目的评级

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

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

谢谢
Pete

这是一种对eclipse的黑客攻击,您可能会遇到麻烦,但这应该是可行的:

打开navigator视图,发现您的项目下有一个.settings文件夹展开它,然后打开文件:org.eclipse.wst.common.project.facet.core.xml您应该会看到一行,上面写着: 将其更改为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">

对不起,似乎我不能发表评论没有足够的代表,所以

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


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

这可能很旧,但我在eclipse Galilio中尝试并发现了以下内容


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

您可以尝试取消选中方面、应用、更改方面的值并选中。它在Eclipse Helios SR1中对我有效

所以主要的区别是我用“动态Web模块”来实现


我希望它也适用于您。

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

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

如果您使用的是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>

谢谢事实上,在我发布问题之前,我尝试了你的破解方法——部分成功。当我试图在Tomcat5.5下从Eclipse内部运行该项目时,我遇到了大量异常。所以我启动了Eclipse来复制异常堆栈。。。成功了!你知道为什么需要黑客吗?在我得到你的答案之前,我很惊慌。它很有效,谢谢!但是有人知道为什么会发生这种事吗?嗯,有点奇怪,更不用说恼人了。无论如何,非常感谢你的回答。你不能用2.4->2.5的其他方式来做:'我在EclipseJuno中对我的问题做了同样的事情,它在那里也起了作用。谢谢EclipseJuno不需要创建一个动态Web项目来完成这个任务,它允许我们添加一个方面。然后,右键单击DynamicWebModule并将版本更改为2.5。第一个OK可能会给你一个NullPointerException,保持冷静,然后再试一次。