Вы правы, что это вряд ли будет работать как веб-приложение - обычно они принимают запросы в качестве входных данных и выполняют некоторую обработку для получения HTML-вывода. Не всегда, но это определенно общая структура, в которой они обычно используются, и я не думаю, что ваш конкретный случай слишком хорошо подошел бы для модели.
Звучит, однако, как будто вы хотите предоставить интерфейс веб-приложения для запроса статуса вашего приложения. Это звучит правильно.
На самом деле кажется, что здесь есть два отдельных компонента:
- Само приложение, которое на самом деле не имеет ничего общего с Интернетом и должно запускаться как «обычное» приложение на коробке, вероятно, запускаемое в качестве фонового демона / службы.
- Функциональность запроса статуса, которая прослушивает HTTP-запросы и предоставляет относительно простой ответ в зависимости от состояния приложения.
Конечно, приложению нужно будет каким-то образом сообщить о своем статусе, что на самом деле является сутью вашего вопроса. Один очень простой способ, который может быть уместным, - это если приложение регистрирует, что оно делает с плоскими файлами / базой данных, а веб-приложение, отображающее состояние, считывает эту информацию и формирует из нее свой ответ.
Другой подход заключается в том, чтобы приложение обеспечивало некоторую функциональность веб-службы; то есть слушайте свои собственные сокеты и предоставляйте ответы на все, что вызывает это программно. Тогда ваше веб-приложение может просто сделать эти вызовы и отформатировать полученные данные. Смотрите, например, это CXF учебник ; если у вас нет сложных требований, веб-службы могут быть такими же простыми, как написание обычного метода Java, аннотирование его и удаление нового JAR-файла в вашем пути к классам.
Наконец, вы можете заставить JMX работать - это та же технология, что и в JConsole, и она позволяет вам определять ваши собственные управляемые bean-компоненты, к которым можно обращаться. Если вы уже определили некоторые MBeans для JConsole, это будет естественным шагом. См. этот документ для примеров того, как написать клиента, который также обращается к этим данным.
Просто помните, что фундаментальный вопрос заключается в том, как программно получить доступ к состоянию работающего демона, и есть много способов сделать это; с «лучшим» в зависимости от многих факторов.