【问题标题】:Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modulesTomcat 7.0 版仅支持 J2EE 1.2、1.3、1.4 和 Java EE 5 和 6 Web 模块
【发布时间】:2014-09-25 02:32:36
【问题描述】:

我正在尝试在我的 Eclipse J2EE 透视图中使用 Tomcat 7 部署一个非常简单的 HTTPServlet 项目。我收到错误消息“Tomcat 7.0 版仅支持 J2EE 1.2、1.3、1.4 和 Java EE 5 和 6 Web 模块”。我已经尝试修改我的 org.eclipse.wst.common.project.facet.core.xml 文件,如提到的here 文件,但这似乎并不能解决问题。我可以通过使用 file->export->.war 直接部署到我安装的 tomcat 服务器上。有什么想法吗?

【问题讨论】:

    标签: java eclipse tomcat


    【解决方案1】:

    转到项目属性 -> 项目方面并更改动态 Web 模块的版本。如果设置为 3.1,则将其更改为 3.0。如果它不允许您更改版本,请取消选中它并按应用。然后您可以选择版本,检查并应用-确定。 为我工作!

    【讨论】:

    • 我确认在我的情况下这解决了问题。即使我不知道为什么这个错误来自不同的网络模块版本。
    • 感谢它对我有用。在 .settings/org.eclipse.wst.common.project.facet.core.xml 中,标签必须是
    【解决方案2】:

    是的,使用 Maven,符合 Java EE 的 Spring 项目,我们在 Tomcat 中遇到了这个问题。要解决此问题,请执行命令列表以使项目符合 Java EE 规范。

    1. $ mvn eclipse:clean - 清理 .project .classpath 等 eclipse 文件
    2. $ mvn eclipse:eclipse -Dwtpversion=2.0 创建与 Java EE 兼容的 eclipse。

    最后在eclipse中打开项目选择服务器tomcat现在点击run on servers(Alt+Shift+x,R)选择tomcat7.0运行。

    【讨论】:

    • 在我的例子中,由于执行了两个 Maven 命令,我的 Project Facets 中的动态 Web 模块配置为 2.4 版。在我将版本更改为 3.0 之前,问题仍然存在。
    • 天才。工作完美。
    【解决方案3】:

    如果您在尝试将项目添加到 Tomcat 7 时收到“Tomcat 7.0 版仅支持 J2EE 1.2、1.3、1.4 和 Java EE 5 和 6 Web 模块”错误。简单地说,

    右击项目 --> 进入项目方面 --> 取消选中动态 web 模块(应该是 3.1)--> 应用 --> 然后将动态 web 模块更改为 3.0 --> 应用然后保存。

    现在尝试添加,它应该可以工作。

    【讨论】:

      【解决方案4】:

      Tomcat 不是兼容 Java EE 的应用程序服务器,因此您不会在此处使用开箱即用的 EJB 或 CDI。相反,请使用构建在 Tomcat 之上的 JBoss WildflyTomEE。或者,更改为完全不同的 Java EE 实现,例如 GlassFish

      另一个选项可能是直接部署到 Tomcat 中。默认情况下,Eclipse 部署在不同的文件夹中,并使用某种绕过方式来查看它部署在 Tomcat 上。请按以下步骤操作:

      1. 在您的 Eclipse 中,转到 Servers 视图(如果它在 IDE 中不可见,请转到 Window/Show view/Servers),它将显示您的 tomcat 服务器(和其他服务器),双击它。李>
      2. 在 Tomcat 概览窗口中,检查服务器位置面板,展开它并检查 web 应用程序的部署位置。
      3. 如果选择的选项是使用 Tomcat 安装,则 Web 应用程序必须位于 <tomcat>/webapps 中。如果没有,请确保选择此选项,应用程序将直接部署在 Tomcat 文件夹中。

      【讨论】:

      • 当直接部署到 Tomcat/webapps 文件夹时,服务器与应用程序完美配合。在我的 J2EE 透视图中尝试添加到服务器实例时,我只在 Eclipse 中看到了这个问题。此外,我还有其他 JAX-RS 项目,我可以通过相同的 J2EE 视角毫无问题地添加它们
      • 不太确定我的问题的根源是什么,但我创建了一个不起作用的项目副本,然后能够将其添加到我的服务器。但是,我也搞乱了“服务器位置设置”,所以这可能是罪魁祸首。最后,我可以在切换到“使用 Tomcat 安装”选项后动态部署我的项目,所以我会接受你的回答 :) 谢谢!
      • @PhilipRego 那是因为...?
      • 检查您的 web.xml 文件并查看您使用的 Servlet 版本。确保它是 3.0。此外,检查您的项目的属性并确保它适用于 Web 3.0,而不是更高版本。
      【解决方案5】:

      对于 Tomcat 版本 6

      在项目中,.settings 文件夹或 CTRL+SHIFT+R : 找到这个文件

      org.eclipse.wst.common.project.facet.core.xml

      facet=jst.web 的版本更改为 2.4 或 2.5

      文件:org.eclipse.wst.common.project.facet.core.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <faceted-project>
        <fixed facet="jst.java"/>
        <fixed facet="jst.web"/>
        <installed facet="jst.web" version="2.4"/>
        <installed facet="jst.java" version="6.0"/>
      </faceted-project>
      

      Tomcat 7 您需要 facet="jst.web" version="3.0" 在 Tomcat 7 上部署。

      【讨论】:

        【解决方案6】:

        解决这个问题 您必须从3.1 to 3.0 更新您的Dynamic Web Module 版本。 Eclipse 不允许直接通过Build Path--&gt;Configure Build Path--&gt;Project Facets 进行这些更新。

        按照以下步骤操作 打开文件:YourPrjectFolder/.setting/org.eclipse.wst.common.project.facet.core

        1. 在项目文件夹中,转到 .settings 文件夹。
        2. 打开org.eclipse.wst.common.project.facet.core XML 文档。
        3. &lt;installed facet="jst.web" version="3.1"/&gt; 行编辑为&lt;installed facet="jst.web" version="3.0"/&gt;
        4. 保存更改。
        5. 转到 Eclipse 并刷新项目。

        您现在可以在 Tomcat 7 上发布您的项目。

        【讨论】:

          【解决方案7】:

          1) 转到 Eclipse 工作区文件夹中的项目。
          2)打开.setting文件夹
          3)打开“org.eclipse.wst.common.project.facet.core”xml文件
          4)Update the version in last line as 2.4 or 2.5
          5)刷新项目并尝试在服务器上运行

          【讨论】:

            【解决方案8】:

            我想我会在这个问题上添加一些东西,因为我尝试了以上所有方法并最终做了一些不同的事情来解决我的问题:

            Tomcat 7.0 版仅支持 J2EE 1.2、1.3、1.4 和 Java EE 5 和 6 Web 模块

            这也导致了

            无法将项目构面动态 Web 模块的版本更改为 3.0 版

            在我们的项目中,我们使用 Maven 构建 Java 1.8 / Tomcat 8.5 应用程序(仅支持动态 Web 模块版本 3.0 - 不支持 4.0)

            我们团队中的某个人在我们的父 pom.xml 中进行了以下更改

            <dependency>
              <groupId>javax.servlet</groupId>
              <artifactId>javax.servlet-api</artifactId>
              <version>4.0.0</version>
              <scope>provided</scope>
            </dependency>
            

            版本已从 3.0.1 移至 4.0.0,无论我尝试用正确的版本 @ 手动覆盖 org.eclipse.wst.common.project.facet.core.xml 多少次987654323@ 一个 Maven 更新用 4.0 重写了它。

            我将版本设置回 3.0.1,如下所示,从那时起,我的 Project Facets 显示正确的版本,我的应用程序正在部署到我的内部 Tomcat 服务器,直到今天,没有人愿意制作更新到版本 4.0.0 :)

            <dependency>
              <groupId>javax.servlet</groupId>
              <artifactId>javax.servlet-api</artifactId>
              <version>3.0.1</version>
              <scope>provided</scope>
            </dependency>
            

            【讨论】:

            • 这个建议可以帮助我解决我的问题
            【解决方案9】:

            可以通过将动态 Web 模块版本更改为 3.0 来解决此问题。这可以通过两种方式完成。

            1. 转到项目属性并单击项目方面,现在您会看到选项Dynamic Web Module,将其更改为3.0

            2. 以上步骤无法更改版本的请打开org.eclipse.wst.common.project.facet.core.xml,将此处的版本更改为&lt;installed facet="jst.web" version="3.0"/&gt;之类的东西

            现在转到项目方面并查看 Dynamic Web Module 版本更改为 3.0

            【讨论】:

              【解决方案10】:

              对于 Tomcat 8.5,如果您遇到此问题,请将您的构面设置更改为 3.1

              打开文件:{project_Folder}/.setting/org.eclipse.wst.common.project.facet.core

              打开 org.eclipse.wst.common.project.facet.core XML 文件。 更改为 3.1 版本 保存并刷新项目你会发现你可以将资源添加到tomcat。

              这对我有用.. 谢谢

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2020-03-27
                • 1970-01-01
                • 1970-01-01
                • 2011-03-20
                • 2015-04-28
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多