【问题标题】:How to use Tomcat 8 in Eclipse?如何在 Eclipse 中使用 Tomcat 8?
【发布时间】:2013-07-25 22:46:31
【问题描述】:

编辑 2014-02-07:Eclipse Luna 在这里,并且对 Tomcat 8 的支持包含在捆绑的 WTP 中:) 快乐的日子!

Tomcat 8 仍在开发中,但您可以通过here 获得它。现在 Apache Tomcat 主页上有一个 RC 版本。 2014 年 2 月 27 日更新:8 现已发布,并且为 WTP 构建了适配器,但尚未集成到 eclipse 包中。很快!

不过,在 Eclipse Kepler 中,Tomcat 8 的添加服务器列表中没有支持的适配器。Tomcat 7 适配器​​不起作用,而且看起来在“安装”中没有可供下载的新扩展新扩展”对话框。

我唯一的选择是让它(Tomcat 8)在 Eclipse 之外本地运行,并且可能将远程调试器挂接到其中以单步执行代码吗?这甚至适用于 Eclipse Kepler + Tomcat 8 吗? IntelliJ IDEA 12 无法在我投入该路径的 30 分钟内完成。

如果您想知道我为什么要尝试这样做,我正在玩 Spring 4.0.0.M1 和 4.0.0.M2 WebSocket 的东西。他们(根据 Rossen Stoyanchev 的 Spring 4.0 blog post 和示例)使用 JSR-356,它在 Tomcat 8 中实现,理论上可以在某个时候向后移植到 Tomcat 7。

对“如何轻松获得支持 Spring 4 WebSocket 的开发环境?”这一更广泛问题的回答。会很好,但知道如何将不受支持的 Web 服务器插入 Eclipse 也很好。

干杯, E

**2013 年 8 月 7 日更新 - Rossen Stoyanchev 更新了 Spring 4.0.0.M2 blog 并添加了一些 jpda 智慧并分享了是的,他正在使用远程调试:

也就是说,在 Eclipse 中使用 Tomcat 8 进行调试并不难。只需将 bin/startup.sh 中的最后一行更改为(注意添加“jpda”):

 exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"

在Eclipse内部为localhost 80端口创建远程调试配置,启动Tomcat后启动,可以在源码中下断点。

谢谢罗森!

**2013 年 9 月 29 日更新 - Eclipse Kepler SR1 刚刚到货,可惜! Tomcat 8 不支持 WTP。Tomcat 8 达到 RC3。

**2013 年 12 月 5 日更新

  • 博客网址修复。
  • Tomcat 8 至 RC5。
  • 在 Eclipse 中跟踪 WTP 修复以支持 Tomcat 8 HERE 的错误。
  • IntelliJ IDEA 新版本 13 表示现在支持 Tomcat 8。还没有亲自尝试过。

【问题讨论】:

标签: eclipse tomcat websocket eclipse-kepler


【解决方案1】:

eclipse插件唯一检查的是里面的tomcat版本:

catalina.jar!/org/apache/catalina/util/ServerInfo.properties

我用 tomcat7 中的属性文件替换了属性文件,解决了 eclipse 的问题

为了能够部署 spring-websockets 示例应用程序,您需要在 eclipse 中编辑以下文件:

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

并将网页版更改为 2.5

<installed facet="jst.web" version="2.5"/>

【讨论】:

  • 我得到了最新的Tomcat 8.0.0 RC1,用7.0.42的版本替换了catalina.jar中的ServerInfo.properties,当我去添加一个Tomcat 7服务器到Eclipse时,仍然得到“指定了未知版本的 Tomcat”错误,无法继续。也试过用7.0.42版本替换ServerInfo.class,因为里面也有版本号,没用。
  • 这绝对是 Eclipse 正在检查 Tomcat 以验证版本的 catalina.jar。在比较了 7.0.42 和 8.0.0.RC1 catalina.jars 之后,看起来发生了重大变化。
  • 在深入研究 Eclipse 源代码后,我发现 TomcatVersionHelper->checkCatalinaVersion() 确实打开了 server/lib/catalina.jar 并检查了 org/apache/catalina/util/ServerInfo.properties 中的 server.info财产。以第一个“/”后面的数字为版本。
  • 我在 Eclipse 源代码中发现的另一件事是,它根据我相信的文件的最后更新时间缓存此信息。那可能是我遇到的挂断电话。或者可能是我没有正确地重新包装罐子。无论哪种方式,我都可以使用您的 hack 并将 7.0.42 ServerInfo.properties 替换为 8.0.0-RC1 catalina.jar,如果您不想手动设置 tomcat 并进行远程调试,这将回答我最初的问题.
  • 作为我在我的 mac 上执行的步骤的总结:1) 将 catalina.jar 重命名为 catalina.zip,用于 7.0.42 和 8.0.0-RC1。 2) 解压缩 catalina.zip(s)(在 mac 上双击)。 3) 将 8.0 版本的 org/apache/catalina/util/ServerInfo.properties 替换为 7.0 版本 4) jar up 修改后的 8.0 catalina 目录。我在分解后的 catalina 目录中使用了这个命令:“jar cmf META-INF/MANIFEST.MF catalina.jar *”
【解决方案2】:

更新:Eclipse Mars EE 及更高版本具有对 Tomcat8 的原生支持。仅当您有早期版本的 eclipse 时才使用它。


Eclipse 最新版本仍然不支持 Tomcat 8,但是你可以添加新版本的 WTP,Tomcat 8 支持将被原生添加。为此:

  • Java EE下载最新版本的Eclipse
  • WTP downloads page,选择最新版本(目前是3.6),下载zip(在 传统的 Zip 文件...Web 应用程序开发人员)。 Here's the current link
  • 将下载的 WTP 的 features 和 plugins 目录中的所有文件复制到 Eclipse 文件夹中的相应 Eclipse 目录中(覆盖现有文件)。

启动 Eclipse,当您进行部署时,您应该有一个可用的 Tomcat 8 选项。

【讨论】:

  • 所以你打开窗口没有tomcat8?
  • 在我添加apache tom v8运行环境后,我发现它不能自动将它的库导入eclipse,喜欢servlet-api.jar,有什么想法吗?
  • 您必须单独包含服务器运行时,但我相信情况总是如此。
  • 为我工作,除了我需要修复我的 Java 构建路径,因为在 Java 构建路径上找不到超类“javax.servlet.http.HttpServlet”
  • 你尝试过使用以下命令启动 eclipse:eclipse --clean
【解决方案3】:

我按照 Jason 的步骤进行操作,但不起作用。

然后我找到了 WTP 更新站点 http://download.eclipse.org/webtools/updates/

Help -&gt; Install new software -&gt; Add &gt; WTP:http://download.eclipse.org/webtools/updates/ -&gt; OK

然后Help -&gt; Check for update,就可以了,不知道Jason的有没有影响。

【讨论】:

  • 感谢您的回答。提供的解决方案有效。对于 Eclipse Kepler,应使用另一个 URL:http://download.eclipse.org/releases/kepler/,然后安装 Web, XML, Java EE and OSGi Enterprise Development
  • @wener 它显示错误“找不到download.eclipse.org/webtools/updates
  • 按照这些步骤操作,但在您检查更新时没有显示任何软件。如果您先按照 Jason 的步骤进行操作,那么它会显示一些要安装的东西,但即使没有做任何其他事情,我也能够获得 Tomcat 8 的显示
  • @wener Luna,你使用的是哪个 Eclipse 版本?
  • 不,Luna 于 2014 年 6 月 25 日发布,但我的发布日期是 2014-4-21。
【解决方案4】:

这应该是已接受答案下的评论,但我还没有 50 声望。

http://download.eclipse.org/webtools/downloads/

我首先选择了 Released 3.5.2,它和其他人一样不适合我。 然后我选择了Integration 3.6.0,看到Tomcat 8 for New Project of Dynamic Web Project。

【讨论】:

    【解决方案5】:

    除了@Jason 的回答之外,我还需要做更多工作才能让我的应用运行。

    【讨论】:

      【解决方案6】:

      最新版Springsource STS(3.6)支持Tomcat 8,基于eclipse Luna 4.4,支持Java 8,快来试试吧!

      【讨论】:

        【解决方案7】:

        或者我们可以使用 eclipse 更新站点(帮助 -> 安装新功能 -> 添加站点(下面的网址) -> 选择所需的功能)。

        对于露娜:http://download.eclipse.org/webtools/repository/luna

        开普勒:http://download.eclipse.org/webtools/repository/kepler

        对于 Helios:http://download.eclipse.org/webtools/repository/helios

        对于旧版本:http://download.eclipse.org/webtools/updates/

        【讨论】:

        • 只有 luna 链接才有意义,kepler 1 及以上版本不建议 WTP 3.6,这是解决 Tomcat 8 问题的关键。
        【解决方案8】:

        在 Eclipse 中添加 Tomcat 9.0(Tomcat 从主干构建)作为服务器。

        如下更新 ServerInfo.properties 文件属性。

        server.info=Apache Tomcat/@VERSION@
        server.number=@VERSION_NUMBER@
        server.built=@VERSION_BUILT@
        
        
        server.info=Apache Tomcat/7.0.57
        server.number=7.0.57.0
        server.built=Nov 3 2014 08:39:16 UTC
        

        从trunk构建tomcat服务器,并将服务器添加为Eclipse中的tomcat7实例。

        ServerInfo.properties 文件位置:\tomcat\java\org\apache\catalina\util\ServerInfo.properties

        【讨论】:

          【解决方案9】:

          下载 Eclipse Luna 并使用 http://download.eclipse.org/webtools/repository/luna 安装 WTP

          已下载 Tomcat 8 并在 Eclipse 中配置新服务器。我现在可以在 Eclipse Luna 中设置 tomcat 8

          【讨论】:

            【解决方案10】:

            如果您使用 root 用户将自己的 tomcat v8 版本解压到自定义目录 (linux) 中,则 TOMCATROOT/lib 目录的默认权限不允许普通用户访问。 p>

            Eclipse 将无法查看 catalina.jar 来检查版本。因此,对 server.properties 的任何摆弄都无济于事!

            只需添加 chmod u+x lib/ 以允许普通用户访问这些库。

            【讨论】:

              【解决方案11】:

              我在下面尝试过,它对我有用。

              1. 在 Eclipse 中转到 Help->Eclipse Marketplace
              2. 在搜索框中输入 JST 扩展。
              3. 为 Luna 安装 JSP 适配器
              4. 重启 eclispe
              5. 您应该能够在添加新服务器时看到 Tocmat 8 服务器。

              【讨论】:

              • 我已经在 Eclipse Kepler 中执行了这些步骤。
              猜你喜欢
              • 1970-01-01
              • 2017-03-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-02-18
              • 2010-12-17
              • 1970-01-01
              相关资源
              最近更新 更多