运行弹性beantalk Java应用程序(不是tomcat)时,如何启用远程调试?
AWS documentation
通过指定启动Java进程的命令,展示了如何为应用程序实现此目标。
但是,如果我想分别部署SAME应用程序(例如,开发人员和产品部署),而只想为开发人员启用远程调试,那么如何实现呢?
最佳答案
如here所述,这可以通过使用_JAVA_OPTIONS
环境变量来实现。
环境变量的名称可能因JVM供应商而异,但当前弹性beantalk使用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)
您只能在要启用调试的Elastic beantalk环境中设置此环境变量。例如
_JAVA_OPTIONS=-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5001,suspend=n
笔记:
您选择的端口必须在该弹性beantalk环境配置中分配给实例的安全组之一中打开。
如果您仅在弹性beantalk中运行一个实例,那么这将是最好的选择;如果您正在运行多个实例,那么您将不知道要将调试器附加到哪个实例。