我正在使用像这样的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。
对这两种选择的任何建议?我只需要能够在不停止服务器的情况下获取转储文件。
答案 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>
)