簡體   English   中英

無法為 PocessBuilder 程序遠程連接到 JMX

[英]Not able to connect to JMX remotely for PocessBuilder program

我們在通過遠程通過 jmx 連接時遇到問題。我們通過程序通過 ProcessBuilder 運行作業

代碼片段:

param ="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=A.B.C.D -Dcom.sun.management.jmxremote.port=9875 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false "
ProcessBuilder pb = new ProcessBuilder("java", param,"-cp", jobArtifact.getAbsolutePath());          
pb.command().add("org.springframework.batch.core.launch.support.CommandLineJobRunner");
final Process process = processBuilder.start();

進程正在啟動,但是當我們嘗試通過遠程將它與jconsole連接時,它沒有連接......並且連接失敗消息即將到來:

Remote connection URL: service:jmx:rmi:///jndi/rmi://A.B.C.D:9875/jmxrmi

我們嘗試過的:

  1. 添加-Djava.rmi.server.hostname=ABCD
    -Dcom.sun.management.jmxremote.local.only=false
  2. ProcessBuilder.getEnv()並添加了我們的環境屬性。
  3. 當我們通過命令提示符運行相同的程序時:

     java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9875 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -cp C:\\jobs\\abc.jar org.springframework.batch.core.launch.support.CommandLineJobRunner

    它正在運行並且能夠通過遠程使用上述相同的 URL 與jmx連接。

歡迎任何建議/解決方法!!!

每個-D選項都需要是ProcessBuilder的單獨參數:

ProcessBuilder pb = new ProcessBuilder("java",
    "-Dcom.sun.management.jmxremote",
    "-Djava.rmi.server.hostname=A.B.C.D",
    // etc. etc.
    "-cp", jobArtifact.getAbsolutePath(),
    "org.springframework.batch.core.launch.support.CommandLineJobRunner");
final Process process = processBuilder.start();

您當前的代碼(將所有這些代碼連接到一個參數中)實質上是將一個名為"com.sun.management.jmxremote -Djava.rmi.server.hostname"屬性設置為值"ABCD -Dcom.sun.management.jmxremote.port=9875 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false " (包括尾隨空格)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM