【问题标题】:Is it possible to debug GWT client code on a REMOTE server using IntelliJ 9 Community Edition?是否可以使用 IntelliJ 9 社区版在远程服务器上调试 GWT 客户端代码?
【发布时间】:2010-04-14 07:56:29
【问题描述】:

我正在尝试将我们的 Google Web Toolkit (GWT) 开发从 Eclipse 迁移到 IntelliJ 9 社区版。到目前为止,我已经能够通过 GWT Maven 插件及其嵌入式 Jetty 容器成功运行和调试客户端/服务器代码。

但是,当客户端代码已经在远程机器上运行时,我无法调试它(因此不需要嵌入式 Jetty 容器)。

有没有人成功地做到了这一点?任何帮助将不胜感激!

更新:我终于能够做到这一点。请在下面查看我自己的答案...

【问题讨论】:

  • “遇到麻烦”是什么意思? AFAIR,在 Google I/O 2009 上,有一个演示文稿显示了调试在 VM 上运行的 GWT 应用程序(调试是从主机完成的)。这似乎完全可行(默认情况下,浏览器插件连接到 127.0.0.1) - 请记住将适当的 IP 添加到 OOPHM Firefox 插件的白名单中。
  • @Nadav:IntelliJ IDEA 的社区版对 GWT 开发有用吗?对于“Java Web 开发”(比如 JSP 和 Servlet),社区版肯定是大时代 :(
  • @WizardOfOdds:我想这取决于你定义的好 :) 如果你不介意手动添加运行/调试配置,那么它是一个很棒的 GWT 编辑器。基本上,由于它可以很好地完成 Java 和 Maven,GWT 几乎完美契合。除了我已经提到的,唯一缺少的是 CSS 支持(或 JSP)——如果你问我,它已经比 Eclipse 好很多了。
  • @Igor:我不确定该视频中的演示是来自嵌入式容器还是来自单独的(远程)容器,但我指的是后者。无论如何,你是对的,事实证明,使用 DevMode 运行器的 -noserver 标志是可行的。

标签: java gwt intellij-idea


【解决方案1】:

我终于能够通过使用 GWT 的 DevMode 类来实现这一点,如 the documentation 中所述。

总之——

  • 将您的项目添加到 IntelliJ 9 社区版
  • 添加应用程序运行/调试配置
  • 使用 com.google.gwt.dev.DevMode 作为主类(确保将 gwt-user 和 gwt-dev jar 包含到项目类路径中。请参阅 here
  • 添加以下程序参数:

    -noserver -war "[展开战争的完整路径]" -gen "[生成文件的完整路径]" -logLevel INFO -port [远程服务器端口] -startupUrl "[URL远程页面的]" [com.company.YourEntryPoint]

这样,DevMode 运行器不会实例化内置容器,并允许以原始 Java 形式调试远程服务器的 JavaScript。

请注意,对于不需要调试远程客户端代码的构建,您可以使用 Maven 或 Ant 集成,这要简单得多。我对 webAppCreator 生成的 build.xml 没有任何经验,但是使用 Maven,您可以使用以下参数简单地运行 gwt:run 或 gwt:debug 目标:-DrunTarget=

希望对你有帮助!

【讨论】:

    【解决方案2】:

    当运行部署在远程服务器上的 GWT 应用程序时,您的应用程序的客户端部分将被翻译成 javascript,因此我认为您无法从 IntelliJ 进行调试。您的应用程序的服务器端部分仍将是 Java 代码。您应该能够使用 java 调试参数(例如传输类型和要侦听的端口)启动这个远程服务器。在 IntelliJ 中,您应该能够使用相同的传输类型和端口启动远程调试会话。 如果您研究远程调试,您应该能够找到如何执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 1970-01-01
      相关资源
      最近更新 更多