Ответ 1
Jolokia - это новый (в настоящее время) агент JMX, который вы можете установить в свою JVM и предоставляет MBeanServer через HTTP в формате JSON.
Привет, я хотел бы контролировать приложение Java с помощью браузера, но в то же время использовать существующую инфраструктуру JMX.
Я знаю, что JMX предоставляет HTTP-интерфейс, но я думаю, что он предоставляет стандартный веб-интерфейс и его невозможно скомбинировать с существующей системой.
Знаете ли вы о каком-либо интерфейсе REST для JMX?
Мои исследования в google в настоящее время показывают, что существует один проект, который делает что-то подобное. Это единственный вариант?
Jolokia - это новый (в настоящее время) агент JMX, который вы можете установить в свою JVM и предоставляет MBeanServer через HTTP в формате JSON.
Tomcat предоставляет JMX Proxy Servlet в своем приложении-диспетчере. Я не думаю, что это именно REST, но он без гражданства и построен из простых HTTP-запросов, поэтому он должен быть достаточно близко.
Для потомков я недавно добавил небольшой веб-сервер в свой SimpleJMX. Он предоставляет beans с платформы MBeanServer на HTTP через Jetty, если в пути к классам. Существуют также текстовые версии всех страниц, которые облегчают очистку.
// create a new JMX server listening on a specific port
JmxServer jmxServer = new JmxServer(8000);
jmxServer.start();
// register any beans to jmx as necessary
jmxServer.register(someObj);
// create a web server publisher listening on a specific port
JmxWebServer jmxWebServer = new JmxWebServer(8080);
jmxWebServer.start();
Там есть небольшая тестовая программа, которая показывает ее в действии. Здесь изображение java.lang:type=Memory
доступно из браузера. Как вы можете видеть, выход очень простой HTML.
Возможно, вам стоит взглянуть на jmx4perl. Он поставляется с сервлетом агента, который проксирует запрос REST локальным вызовам JMX и возвращает структуру JSON с ответами. Он поддерживает чтение, запись, exec, список (список mbeans) и операции поиска и знает, как погрузиться в сложные структуры данных с помощью выражения XPath. Подробнее см. Описание протокола.
В предстоящем выпуске можно также обрабатывать запросы с большим количеством (== несколько одновременно) и добавлять возможность отправлять запрос JSON как альтернативу чистому REST GET-запросу.
В одном из следующих выпусков поддерживается режим прокси-сервера, поэтому сервлет-агент не должен развертываться на целевой платформе, а только на промежуточном прокси-сервере.
MX4J - еще одна альтернатива., цитируя ниже на домашней странице -
MX4J - это проект по созданию реализации с открытым исходным кодом для Java (TM) Management Extensions (JMX) и спецификаций JMX Remote API (JSR 160) и для создания инструментов, связанных с JMX.