【问题标题】:Enable JMX with spring boot repackage使用 Spring Boot 重新打包启用 JMX
【发布时间】:2017-05-31 15:15:20
【问题描述】:

我想为我的 Spring Boot 应用程序启用 JMX,并尝试了所有方法但没有成功。我认为,问题在于,我正在使用spring-boot-maven-pluginrepackage 选项。

目前我做了以下事情:

export JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1617 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=127.0.0.1"
java -jar target/myapp-1.0.0.jar

但是当我启动应用程序时,它没有侦听端口 1617。我无法从 JMX 客户端连接,ss -tulpen 也没有列出该端口。

我也试过直接传递-D...参数。我还用--com.sun... 尝试过,并认为Spring boot 可以这样处理它们。我还在多台机器上尝试了许多其他的东西,但没有成功。

一些进一步的信息:

  • 我的应用程序使用任何spring-boot 父级。
  • 我正在 ArchLinux 系统上尝试这个。
  • 我没有任何特殊的 iptables 配置,所有端口都应该在配置的 ip 上可用。
  • Spring Boot 版本:1.4.1.RELEASE
  • Java 版本:openjdk version "1.8.0_112"

我做错了什么,在哪里可以找到相关帮助的文档?

更新:我添加了一些用于读取和打印传递的JAVA_OPTS 的行(如here 所述)。当我通过 IntelliJ 启动应用程序并将 VM 选项设置为上面的 JAVA_OPTS 值时,它可以工作。打印传递的选项,VM 正在侦听端口 1617。当我使用 java -jar my.jar -Dcom.sun.... 启动应用程序时,未打印参数,VM 仍未侦听端口 1617。

【问题讨论】:

  • 我认为您正在使用 wrong way 来传递 JMX 参数。尝试在java 命令之后直接传递它们。
  • “它不监听 1617 端口”是指无法连接还是在 netstat 中查找过?
  • @MaximDobryakov 如前所述。我已经这样做了。我也用java -Dcom.sun.... -jar ... 运行了java 命令。
  • @chrylis ss 是新的netstat。所以无法连接,netstat/ss 没有列出来
  • 当内核 13.0 删除 proc 条目时,我将切换到 ss。离开我的草坪!

标签: java linux spring spring-boot


【解决方案1】:

问题解决了!我仍然不知道为什么它不适用于JAVA_OPTS,但我知道直接传递选项时我做错了什么:似乎我总是通过-jar ... 选项之前 @987654323 @ 选项。但我现在发现:

这些选项的顺序很重要!

什么?真的吗?

是的!

所以,现在适合我的方式:

java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1617 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar my.jar

而这个不起作用

java -jar my.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1617 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

【讨论】:

  • 非常感谢!我整天都在找这个!
  • 这是因为您正在运行一个 jar:-jar my.jar 之后的所有内容都作为参数传递给您的 main 方法 (String[] args),而不是作为 JVM 选项。
猜你喜欢
  • 2018-12-14
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 2017-01-16
  • 2019-07-05
  • 1970-01-01
相关资源
最近更新 更多