如何在运行Java应用程序的弹性Beanstalk应用程序上启用Java调试?

4
当运行弹性Beanstalk Java应用程序(非Tomcat)时,如何启用远程调试?AWS文档显示了如何通过指定启动Java进程的命令来实现应用程序的远程调试。
但是,如果我想单独部署相同的应用程序(例如开发和生产部署),并且只想为开发启用远程调试,该怎么办?
2个回答

5

可以通过使用 _JAVA_OPTIONS 环境变量来实现,具体信息请参见这里

环境变量的名称可能因JVM供应商而异,但目前 Elastic Beanstalk 使用的是 OpenJDK,该版本支持 _JAVA_OPTIONS

[webapp@ip-XXXXXXX ~]$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

您只能在希望启用调试的弹性 Beanstalk 环境中设置此环境变量。例如:
_JAVA_OPTIONS=-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5001,suspend=n
注意事项:
- 您选择的端口必须在分配给该弹性 Beanstalk 环境配置实例的安全组之一中打开。 - 如果您在弹性 Beanstalk 中运行多个实例,则最好仅运行一个实例,否则您将不知道将调试器附加到哪个实例。

0

我认为你可以使用 Eclipse 的 AWS 工具插件 https://aws.amazon.com/eclipse/

enter image description here

勾选框并保存将允许用户进行远程调试。

或者在AWS控制台中更改>弹性Beanstalk>配置>JVM选项

enter image description here

以上是针对JDK5之前的版本

对于JDK8: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接