Jacoco jmx转储,连接重置错误

时间:2015-02-27 23:33:46

标签: java tomcat jmx jacoco

我正在使用像这样的jacoco代理运行tomcat:

-javaagent:/path_to_jar/jacocoagent.jar=jmx=true,output=tcpclient,port=8001
我知道

是因为lsof命令列出了88208 TCP localhost:**8001** (LISTEN)

当我使用PORT = 8001;运行此示例code时,我收到错误消息: Exception in thread "main" java.net.SocketException: Connection reset

这似乎是jacoco的一个较老的例子。我需要访问tcp服务器的方式有什么变化吗?我也尝试通过他们的MBeanClient访问jacoco,但是它给了我一个InstanceNotFoundException并且看起来tomcat没有" org.jacoco:type = Runtime"当我打印出所有域名时,它被列为bean。

对这两种选择的任何建议?我只需要能够在不停止服务器的情况下获取转储文件。

1 个答案:

答案 0 :(得分:1)

结果我在启动服务器时需要更多的java参数:

-Dcom.sun.management.jmxremote.port=9999"
-Dcom.sun.management.jmxremote.ssl=false"
-Dcom.sun.management.jmxremote.authenticate=false"

没有这些JMX就无法将jacoco视为我本地主机上的bean。

(这也适用于glassfish,但需要使用<jvm-options>

进行设置