gpt4 book ai didi

java - 为什么 jvisualvm 看不到我的 Play Framework 应用程序?

转载 作者:行者123 更新时间:2023-12-03 21:30:51 25 4
gpt4 key购买 nike

我正在尝试使用 jvisualvm 来查看 Play Framework 应用。

环境:Windows 7 位,Java 7 64 位。

步骤:

1) 添加 -Dcom.sun.management.jmxremote_JAVA_OPTIONS 环境变量。

Play Output

Picked up _JAVA_OPTIONS: -Xms800m -Xmx1500m -XX:PermSize=64m -XX:MaxPermSize=256m -Dcom.sun.manageme nt.jmxremote

2) 运行 jvisual vm(来自 C:\Program Files\java\jdk1.7.0_03\bin)。

3) 我在本地进程列表中没有看到 Play 进程。

我错过了什么?

最佳答案

我的环境

  • 开发人员 PC:Windows 8、JDK1.6 中的 VisualVM
  • 服务器:Ubuntu,JDK1.6,play 1.2.2

要连接到本地Play应用,唯一的选项"-Dcom.sun.management.jmxremote"即可。

但是为了连接到远程 Play 应用程序,JVM 需要更多选项。

由于设置_JAVA_OPTIONS环境会影响所有Java程序,所以我更改了 Play 启动脚本:framework/pym/play/application.py

def java_cmd(self, java_args, cp_args=None, className='play.server.Server', args = None):
...
java_args.append('-Dcom.sun.management.jmxremote')
java_args.append('-Dcom.sun.management.jmxremote.port=5678')
java_args.append('-Dcom.sun.management.jmxremote.ssl=false')
java_args.append('-Dcom.sun.management.jmxremote.authenticate=false')
java_args.append('-Dcom.sun.management.jmxremote.local.only=false')
java_args.append('-Djava.rmi.server.hostname=192.168.0.10')

java_cmd = [self.java_path(), '-javaagent:%s' % self.agent_path()] + java_args + ['-classpath', cp_args, '-Dapplication.path=%s' % self.path, '-Dplay.id=%s' % self.play_env["id"], className] + args
return java_cmd

然后重新启动 Play 应用,并从 VisualVM 重新连接它。

关于java - 为什么 jvisualvm 看不到我的 Play Framework 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com