【问题标题】:How to make the debugging in playframework in IntelliJ Idea如何在 IntelliJ Idea 中的 playframework 中进行调试
【发布时间】:2011-03-22 11:04:18
【问题描述】:

这里有链接

http://www.playframework.org/documentation/1.0.1/ide

关于如何配置 playframework 以使用不同的 IDE。他们在那里说了几句话关于调试,但不清楚 - 我该如何执行调试?如果我在模型的构造函数类中设置断点,那么我应该如何以及启动什么来初始化调试?我使用 IntelliJ Idea。

例如,当我使用 Jboss 或 Tomcat 时,这些服务器的 IDE 中有一个选项可以在调试模式或“正常”模式下运行它们。但是在这种情况下如何使用 Play 框架呢?我应该以某种方式配置远程调试吗?

【问题讨论】:

标签: debugging playframework


【解决方案1】:

在 intellij IDEA 中运行/调试应用程序最方便的方法如下。

菜单命令:运行 -> 编辑配置!

添加新配置 -> 应用程序

然后填写字段:

主类:

play.server.Server

虚拟机参数:

-Dapplication.path=.

你应该有类似的东西:

如果你做的正确,那么你可以直接从 IDE 运行和停止你的应用程序

为 Play 编辑! 2

Play 2 有很好的调试文档。所以去读吧。但是,如果您想研究运行/调试按钮方法 - 请进一步阅读。

Play 2 不同。

设置:

主类:

play.core.server.NettyServer 或者 play.core.server.ProdServerStart

虚拟机参数:

-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999 -Dapplication.path=.

您仍然可以通过按调试按钮来调试您的应用程序,但我还没有发现一些问题:

  • 它始终以 PROD 模式启动,因此您无法进行热代码更改。

  • RUNNING_PID。重新启动调试会话时出现错误,提示您必须删除此文件。

【讨论】:

  • 但这只是为了运行和停止而不是为了调试,对吧?
  • 还有一个很重要的东西,-Dplay.id=yop 来指定play framework id。
  • 附加VM参数-Dplay.id=test,并在依赖项中添加模块设置添加单入口模块库,选择$PLAY_HOME/modules/testrunner/lib/play-testrunner.jar跨度>
  • 此方法不适用于 Open JDK。您必须使用 Sun JDK。我不确定为什么。但是当我从 Open JDK 6 切换到 Sun JDK 6 时,神奇的事情发生了。
  • 仅供参考,对于 Play 2,在我执行 play debug 之后,我尝试了 play start,即使调试器设法附加,我的断点也没有命中。我尝试了play run,这对我来说效果更好。
【解决方案2】:

如果它是一个播放项目,从命令行:

play debug

如果它是命令行下的 SBT 播放项目:

 sbt -jvm-debug 9999 run

调试端口默认为 9999

现在创建一个远程配置

在 IntelliJ 中:

转到“编辑运行配置”

创建一个新的远程配置(端口 9999,所有其他细节保留默认值)

运行新的调试配置(别忘了放一个断点)

【讨论】:

    【解决方案3】:

    在 Play 2 中,只需执行以下操作:

    • 从外壳,运行play debug
    • 您将进入调试控制台。输入 run 并回车。
    • 然后在 IntelliJ IDEA 中为“localhost”和 9999 创建一个远程配置。
    • 开始新配置

    【讨论】:

    • 这是为我做的!谢谢
    • 这里是这些步骤的更详细版本:playframework.com/documentation/2.0/IDE
    • 我在 play 网站上可以找到的每个参考都使用 sbt。这个应用程序play (play debug) 来自哪里?我该如何安装?
    • @CarlosCaldas 我认为它不再存在。现在玩不使用香草sbt。这些天我在 Play 上没有更新,所以我不确定开始调试的新方法是什么。
    【解决方案4】:

    当您启动 Play Framework(通过 play run)时,您会看到调试端口正在某个地址运行。这是服务器上的标准 Java 行为(启用了调试端口)。

    大多数 IDE 允许您建立与该远程端口的连接,以便您可以远程调试代码。具体步骤取决于您使用的 IDE,但应该就这么简单。

    【讨论】:

      【解决方案5】:

      我必须将 build.sbt 中的这一行从:

      fork 运行中:= true

      fork in run := false

      让断点在具有 Play 2 App 运行配置的 IntelliJ IDEA 15.0 中工作。

      【讨论】:

      • 这对我有用,当作为 SBT 任务运行(嗯,调试)时。
      • 调试器会连接但不会遇到任何断点,直到更改此设置。谢谢!
      【解决方案6】:

      我也遇到过类似的问题。

      play(在 2011-08-28 从 github 克隆)和 intellij 10.5

      严重:无法读取 application.conf

      我的解决方法是:-Dapplication.path=。 (不带“”)

      在我的盒子上不再需要设置 -Djavaagent=...。

      【讨论】:

      • 对我来说也是如此。在 Mac OSX 上
      【解决方案7】:

      从 IDEA 11 版本开始,终极版就原生支持 Play 框架。 要调试您的 Play 应用程序,请执行以下操作:

      • 在命令行中,使用“play new demoapp”创建一个新的演示应用
      • 在命令行中,使用“play idea demoapp”创建 Intellij 项目/模块文件
      • 如果您使用最新的 JDK(错误!),可选择编辑 .iml 文件并将“1.6”更改为“1.7”(错误!)
      • 启动 Intellij,并打开 demoapp 项目
      • 转到运行/编辑配置
      • 按“+”按钮,添加“远程”配置
      • 选择 Transport:socket, Debugger mode:Attach, Host:localhost, Port 8000
      • 设置“名称”和“类路径模块”
      • 开始游戏!通过选择工具/播放框架在 IDEA 中提供框架支持
      • 通过在 Play! 中键入“play run play101”来启动演示应用程序!控制台
      • 在 Application.java 文件的“render()”行中设置断点
      • 启动“远程”调试配置。
      • 在浏览器中,转到http://localhost:9000

      你现在应该打断点了。

      【讨论】:

      • 这几乎是对的,但你必须“玩调试”而不是“玩运行”
      • @Gertjan ...您是绝对正确的。由于 localhost URL,我无法保存更新的答案,所以我希望人们阅读这些 cmets。
      • 我用的是 play 1.2.5,它没有play debug 命令。但是,Jan 的方法,只需设置 module = no module (IDEA IntelliJ 11),就可以了。
      【解决方案8】:

      使用 SBT 项目,您可以使用 SBT 任务 配置(运行->编辑配置->添加新配置->SBT 任务)从 IDE 调试器进行调试 - 使用 任务 设置设置为:

      “运行 9000”“-jvm-debug 9999”

      9000 是站点端口,9999 是默认调试端口。引号是必需的

      然后选择配置&调试

      适用于社区版 (2016.2)

      【讨论】:

        【解决方案9】:

        我的解决方法是: 打开“运行/调试配置”对话框,然后将“工作目录”更改为项目目录。

        【讨论】:

          【解决方案10】:

          我刚刚在开发模式下在端口 8080 上执行了应用程序。Play 自动打开端口 8000 以进行 JVM 调试。

          然后使用模板“Remote JVM Debug”创建一个新的运行/调试配置,并将端口设置为 8080。

          【讨论】:

            【解决方案11】:

            运行 -> 编辑配置 运行/调试配置 => 远程 JVM 调试

            您只将端口更改为 9999 并保持原样(默认值) Run/Debug Configurations

            然后在构建旁边的 IntelliJ Terminal 按钮菜单中(控制台,默认为项目根目录的路径)并运行

            sbt -jvm-debug 9999 run
            

            然后在此按钮菜单中进行调试,然后单击 Rerun 'RemoteJVMDebygName' 或 运行(在文件旁边)调试“RemoteJVMDebygName”

            在你应该尝试之前

            sbt compile
            
            sbt run
            

            sbt -jvm-debug 9999 运行 =>

            一个你点击运行 -> 调试“XXX”或调试中的绿色错误

            如果你在 http://localhost:9000/ 遇到断点

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-07-23
              • 2021-12-14
              • 1970-01-01
              相关资源
              最近更新 更多