Как запустить приложение Java на Apache 2.2 без Tomcat?
Я создаю web-сервис с Java, который не использует JSP или сервлеты, и хочу запускать его на моем HTTP-сервере Apache без установки и настройки Tomcat. Возможно ли это (легко), и как я могу это сделать?
Я искал информацию об этом, и единственное, с чем я столкнулся, это разъем Tom_at mod_jk, который по-прежнему требует установки Tomcat. Я что-то пропустил?
Ответы
Ответ 1
Прежде всего, Servlets - это основа Java для веб-разработки. Итак, независимо от того, что вы делаете в веб-разработке, например веб-сервисы, вам понадобится контейнер сервлетов, как Tomcat.
Итак, ответ на ваш вопрос: "Вы не можете запустить его только на HTTP-сервере Apache", потому что это не контейнер сервлетов.
Ответ 2
Конечно, это возможно. Вы можете сделать это с помощью mod_cgi.
Очень простой пример:
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello Java CGI world!");
}
}
а затем файл script (HelloWorld.shtml - не забудьте разрешение на выполнение), который выполняет класс Java
#!/bin/bash
echo "Content-type: text/html"
echo ""
/usr/bin/java HelloWorld
В Apache conf просто определите каталог script, что-то вроде этого:
ScriptAlias /cgi-bin/ /Users/hectorsuarez/Proyectos/test/cgi-bin/
<Directory "/Users/hectorsuarez/Proyectos/test/cgi-bin">
SetHandler cgi-script
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Что это!. Это очень простой и тривиальный пример.
Это осложнится, потому что вам может понадобиться механизм шаблонов и гораздо лучший способ управления входящими вызовами CGI. Но да, возможно.
Ответ 3
Не совсем понятно, что вы хотите сделать, но я собираюсь предположить, что вы хотите запустить автономное Java-приложение, которое может обрабатывать HTTP-запросы и выставлять его через Apache. В этом случае вы можете сделать это, настроив Apache с помощью mod_proxy. Это может быть достойным примером того, как это можно сделать.
Ответ 4
Нет, Tomcat, jetty, jboss или Glassfish в значительной степени обязательны