【问题标题】:GWT application deployed locally to Intellij Tomcat does not see breakpoints in gwt-aware client-module本地部署到 Intellij Tomcat 的 GWT 应用程序在支持 gwt 的客户端模块中看不到断点
【发布时间】:2019-07-15 14:44:14
【问题描述】:

关于应用程序的一些事实:

  • 它由几个模块组成,其中一个是 GWT 客户端模块
  • 春天 3
  • GWT 2.6.1(+ 兼容的 GXT)
  • 打包为 .war,可以部署到独立的 Tomcat
  • Chrome 插件不再工作,所以直到最近我不得不依赖 Eclipse + 嵌入式 Jetty + Firefox 24 才能在 DevMode 下启动应用程序并对其进行调试

前几天我决定尝试在 IntelliJ IDEA 中启动它,看看调试是否可以在那里工作。

通过 IntelliJ 中的 local Tomcat 配置部署应用后的观察结果:

  • 应用部署得很好(使用warexploded war artifact)。基本上,Intellij 从独立的 Tomcat 安装中获取work 目录并将其移动到其安装文件夹(例如.IntelliJIdea2019.1/system/Tomcat/Unnamed_MYAPP)。配置文件也被复制到 config 目录。
  • Tomcat 的 webapps 目录保留在原始 Tomcat 安装中,并且应用程序部署在那里

起初我以为断点根本无法识别。然而,事实证明我只是在 GWT 客户端模块内测试中断;当我后来尝试其他一些模块时 - 执行按预期停止。

现在,有趣的是,当我使用 Jetty 进行开发和调试时,如果我对 GWT 客户端模块进行了更改,我可以简单地重新加载页面,它就会出现。

对于 Intellij 和 Tomcat,情况正好相反。断点不像提到的那样工作,但也令人耳目一新,例如。通过Update classes(而不是完全重新部署)不起作用,而对于其他模块却可以。

有没有办法以某种方式调整我的工件,以便也可以调试 GWT 模块?

我的exploded war 工件如下所示:

  • 元信息
    • 清单.MF
  • WEB-INF
      • GWT 模块编译输出
    • web.xml
  • webapp 目录内容
  • GWT 客户端模块 GWT 编译器输出

【问题讨论】:

标签: debugging tomcat intellij-idea gwt


【解决方案1】:

实际上,这是一个愚蠢的情况 - 我希望执行停止在 gwt-aware 模块的 Java 代码中设置的断点处 - 但由于它已经被转译为 Javascript - 这是不可能的。

在此类模块中停止断点的唯一方法是使用 DevMode。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多