Ошибка подключения при подключении JConsole в Windows с удаленным приложением Java Springboot в Linux - PullRequest
0 голосов
/ 24 января 2019

Я запускаю приложение Java SpringBoot на моем RHEL-сервере, на котором установлена ​​java 1.8 , с помощью следующей команды: -

java -jar App.jar --spring.profiles.active=dev -Xms96m -Xmx128m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:loggc.log 
-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=5901
-Dcom.sun.management.jmxremote.rmi.port=5901
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.local.only=false 
-Djava.rmi.server.hostname=localhost

После успешного запуска банки был назначен PID , и я хотел отслеживать этот PID для использования кучи . Поэтому я пытаюсь добиться этого с помощью , используя JConsole в среде Windows и связывая порт JMX в Linux с портом в Windows, используя переадресацию портов с использованием putty.

Но я не могу подключиться успешно, так как произошел сбой соединения JRMP.

Может когда-нибудь дать мне представление о том, что я могу делать неправильно или есть ли лучший способ проанализировать использование кучи в среде Linux.

Я попытался получить к нему доступ через: jconsole 5901, но в удаленной конечной точке написано, что сервер не-JRMP.

1 Ответ

0 голосов
/ 24 января 2019

Порядок аргументов неправильный.Аргументы доступны как аргументы в вашем основном методе, но среда выполнения Java не заботится о них.

java -h
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

При правильном упорядочении среда выполнения Java будет принимать аргументы, а не ваше приложение.

java -Xms96m -Xmx128m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:loggc.log 
-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=5901
-Dcom.sun.management.jmxremote.rmi.port=5901
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.local.only=false 
-Djava.rmi.server.hostname=localhost
-jar App.jar --spring.profiles.active=dev
...