Запуск кода в контексте java WAR из командной строки

StackOverflow https://stackoverflow.com/questions/108838

Вопрос

Как бы я мог написать какой-нибудь код, чтобы разрешить доступ к классу Java в моем веб-приложении из командной строки?

Например.У меня есть класс Java с интерфейсом командной строки, который может запускать код в контексте веб-приложения, с доступом к базе данных и т.д.Я хочу войти на компьютер, на котором размещено мое защищенное приложение в tomcat, и иметь возможность взаимодействовать с ним

С чего мне начать поиски ?

Спасибо

Это было полезно?

Решение

Вы просто хотите запускать файлы классов, которые просто так оказались в комплекте с WAR, или вы хотите взаимодействовать с реальным запущенным экземпляром WAR?Если первое, то WAR - это просто обычный Jar-файл, и вы можете выполнять классы в нем так же, как и в любом другом Jar-файле.

Если вы хотите взаимодействовать с запущенной WAR, то, возможно, вам захочется взглянуть на JMX.

Все текущие JDK (не менее 1.5+) поставляются с JMX "бесплатно".Легко создать небольшие интерфейсные классы, которые будут использоваться в качестве команд для взаимодействия с вашим WAR.

Затем вам нужно будет создать программу командной строки, которая подключается к WAR через JMX, или вы можете использовать такой инструмент, как JConsole (который поставляется с JDK, но это графический интерфейс) для взаимодействия с вашим экземпляром.Существуют и другие клиенты JMX.

Если ничего из этого не кажется привлекательным, всегда есть веб-сервисы.

Другие советы

Предложение:Ваш класс интерфейса командной строки должен принимать InputStream в качестве входных данных и предоставлять OutputStream (он не может жестко кодировать вывод в System.out и вводить в System.in), в который будут записаны его выходные данные.Затем вам нужно будет написать класс сервера, который прослушивает соединения по определенному порту.Когда устанавливается соединение, сервер принимает входной поток из соединения и передает его классу командной строки, который предоставляет выходной поток, в который записываются данные, которые будут переданы клиенту, установившему соединение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top