Debugging 如何调试已部署的Grails应用程序

Debugging 如何调试已部署的Grails应用程序,debugging,grails,ide,intellij-idea,Debugging,Grails,Ide,Intellij Idea,在Intellij IDEA或任何其他IDE中,是否有任何方法可以调试部署到生产服务器上的Grails应用程序?您需要在调试模式下启动服务器,方法是在java process start脚本中添加如下内容: -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 然后在IntelliJ中打开运行>编辑配置并选择默认值>远程,您可以在其中设置上面指定的端口以调试远程JVM 您可以在Eclipse中执行同样的操作。

在Intellij IDEA或任何其他IDE中,是否有任何方法可以调试部署到生产服务器上的Grails应用程序?

您需要在调试模式下启动服务器,方法是在java process start脚本中添加如下内容:

-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
然后在IntelliJ中打开
运行>编辑配置
并选择
默认值>远程
,您可以在其中设置上面指定的端口以调试远程JVM


您可以在Eclipse中执行同样的操作。

您还可以使用
grails调试运行应用程序来调试grails应用程序。但我认为这对于生产来说不是一个好的选择

同样,从grails 2.3.0开始,jvm被分为构建vm和应用程序vm。使用
--debug
可以调试构建vm,使用
--debug fork
可以调试应用vm

您可能需要
suspend=n
,这样它就不会挂起启动,而是按需接受连接。上面可以设置的好地方是GRAILS\u选项(例如stackoverflow.com/a/18599827/1572286),由于grails 2.4.0,命令略有不同:
grails-debug run app
2017年更新:在grails 3.2.8中,它是
grails run app-debug jvm
。默认情况下,它侦听端口5005。@Filip Stachowiak如何在执行grails run app--debug jvm时更改端口?