是否可以使用 IntelliJ 9 社区版在远程服务器上调试 GWT 客户端代码?

2022-09-02 10:19:34

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

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

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

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


答案 1

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

简而言之 -

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

    -noserver -war “[完整路径到你的爆炸战争]” -gen “[生成文件的完整路径]” -logLevel INFO -port [远程服务器端口] -startupUrl “[远程页面的 URL]” [com.company.YourEntryPoint]

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

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

希望它有帮助!


答案 2

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


推荐