Как запустить скрипт bash (linux) во встроенном веб-приложении, используя tomcat 7?

Я хочу запустить скрипт Bash с Java EE / сервлетов. Я хочу, чтобы он был встроен в веб-приложение, используя tomcat 7 в операционной системе Linux.

2 ответа

Решение
  1. Вставьте скрипт в веб-приложение, например, в корень файла war.
  2. Получите путь к файлу после развертывания приложения с помощью:

    String scriptPath = getServletContext().getRealPath("/script.sh");

  3. Запустите скрипт с классом ProcessBuilder:

    new ProcessBuilder("/bin/sh", scriptPath).start();

Обратите внимание, что шаг 2 может завершиться неудачно, если ваш контейнер сервлетов не извлекает содержимое файла war. В этом случае вам нужно будет поместить скрипт в качестве ресурса, доступного на пути к классам, скопировать его содержимое во временный файл и запустить там скрипт.

Вы должны найти, как включить и использовать CGI на Tomcat.

CGI (Common Gateway Interface) определяет способ взаимодействия веб-сервера с внешними программами, генерирующими контент, которые часто называют CGI-программами или CGI-скриптами.

Источник: Apache Tomcat 7 Документация: CGI How To

Другие вопросы по тегам