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




Предложение: Класс интерфейса командной строки должен принимать InputStream в качестве ввода и предоставлять OutputStream (он не может жестко закодировать вывод в System.out и ввод в System.in), в который будет записан вывод. Затем вам нужно будет написать класс сервера, который будет прослушивать соединения на определенном порту. Когда соединение установлено, сервер берет InputStream из соединения и передает его классу командной строки, который предоставит OutputStream, в который записанные данные будут переданы клиенту, который установил соединение.
Вы просто хотите запускать файлы классов, которые случайно оказались связанными с WAR, или вы хотите, чтобы они не взаимодействовали с фактическим запущенным экземпляром WAR? Если первое, то WAR - это просто обычный файл Jar, и вы можете выполнять классы в нем, как и в любом другом файле Jar.
Если вы хотите взаимодействовать с запущенной WAR, вы можете взглянуть на JMX.
Все текущие JDK (как минимум 1.5+) поставляются с JMX «бесплатно». Легко создать небольшие классы интерфейса, которые будут использоваться в качестве команд для взаимодействия с вашей WAR.
Тогда вам нужно будет создать программу командной строки, которая подключается к WAR через JMX, или вы можете использовать такой инструмент, как JConsole (который поставляется с JDK, но это графический интерфейс) для взаимодействия с вашим экземпляром. Есть и другие клиенты JMX.
Если ничего из этого не выглядит привлекательным, всегда есть веб-службы.
Что касается «WAR - это просто обычный файл Jar, и вы можете выполнять классы в нем, как и в любом другом файле Jar», это означает, что вы можете сказать «java -cp foo.war ...» или даже «java -jar foo. .war "и пусть он работает как файл jar. Сможете ли вы В самом деле это сделать?
Спасибо, вот что я искал. Тогда JMX готов к работе. Будем исследовать это. Спасибо