Запуск кода в контексте java WAR из командной строки - PullRequest
1 голос
/ 20 сентября 2008

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

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

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

Спасибо

Ответы [ 2 ]

4 голосов
/ 20 сентября 2008

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

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

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

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

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

0 голосов
/ 20 сентября 2008

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

...