使用YAJSW启动Java应用后无法远程调试问题求助
解决YAJSW启动Java应用无法远程调试的问题
你踩的坑其实是参数传递的位置搞错了,而且配置格式也有小问题,我帮你捋清楚:
首先,先纠正你当前配置的问题:你把JVM调试参数放到了wrapper.app.parameter里,这个配置项是用来传递你的Java应用main方法的入参的,不是给JVM用的,所以调试参数根本没被JVM识别到。另外你给逗号加了转义,这在YAJSW的properties配置里是多余的,反而会导致参数解析失败。
正确的配置方式
要用wrapper.app.additional系列参数来传递JVM级别的启动参数,这才是专门给目标Java应用的JVM加额外参数的地方。把你的配置改成这样:
# 远程调试JVM参数 wrapper.app.additional.1=-Xdebug wrapper.app.additional.2=-Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=n
为什么之前的方法不生效?
- 用setenv配置:这里的参数会被加到YAJSW自身的JVM启动命令里,所以只有YAJSW进程进入调试模式,和你的目标应用完全没关系。
- 用wrapper.app.parameter配置:如前面所说,这个是给应用main方法传参的,JVM根本不会把这些当成自己的启动参数处理。
验证配置是否生效
重启YAJSW后,用jps -v命令查看目标应用的进程,检查启动参数里是否包含这两个调试参数。如果能看到,就说明配置成功了,之后直接用IDE连接localhost:8888就能开始远程调试了。
内容的提问来源于stack exchange,提问作者gladiator
相关产品推荐
相关产品推荐

