Невозможно запустить javaagent, который зависит от jndi с sbt - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу собрать метрики JMX моего приложения Play 2.5, используя экспортер Prometeus JMX (https://github.com/prometheus/jmx_exporter)

Поэтому я добавил mx_prometheus_javaagent-0.12.0.jar в качестве javaagent в команду sbt runner; sbt run -Dcom.sun.management.jmxremote.port=5000 -Dcom.sun.management.jmxremote.authenticate=false -J-javaagent:"../jmxexporter/jmx_prometheus_javaagent-0.12.0.jar=5001:../jmxexporter/config.yaml"

Тем не менее, javaagent от prometheus требует выполнения вызова jndi, для которого требуется класс tyrex.naming.MemoryContextFactory, но этот класс не определен в sbt-launch.jar или mx_prometheus_javaagent-0.12.0.jar, которыетолько два jar в модуле запуска sbt AppClassLoader.

В результате я получаю исключение ниже;

ipjsipjJmxCollector - Сбой JMX-очистки: java.io.IOException: Не удалось получить заглушку RMIServer: javax.naming.NoInitialContextException: Невозможно создать экземпляр класса: tyrex.naming.MemoryContextFactory [Исключением корня является java.lang.ClassNotFoundException: tyrex.naming.MemoryContextFactory]

Понятия не имею, как решить эту проблему. У вас есть решение?

...