我正在使用Java构建一个不使用JSP或servlet的Web服务,并希望在我的Apache HTTP服务器上运行它而无需安装和配置Tomcat。这是否可行(轻松),我该怎么办呢?
我一直在寻找有关这方面的信息,我唯一遇到的是mod_jk Tomcat连接器,它仍然需要安装Tomcat。我错过了什么吗?
答案 0 :(得分:15)
当然有可能。你可以使用mod_cgi来做它。
一个非常简单的例子是这样的:
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello Java CGI world!");
}
}
然后执行Java类的脚本文件(HelloWorld.shtml - 不要忘记执行权限)
#!/bin/bash
echo "Content-type: text/html"
echo ""
/usr/bin/java HelloWorld
在Apache conf中,只需定义脚本目录,如下所示:
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调用。但是,有可能。
答案 1 :(得分:5)
首先,Servlets是用于Web开发的Java的基础知识。因此,无论您正在进行哪些Web开发,例如Web服务,您都需要一个Servlet容器,如Tomcat。
所以你的问题的答案是“你不能只在Apache HTTP Server上运行它”,因为它不是一个Servlet容器。
答案 2 :(得分:3)
目前还不完全清楚你想做什么,但我猜你想要运行一个可以处理HTTP请求并通过Apache公开它的独立Java应用程序。如果是这种情况,您可以通过使用mod_proxy配置Apache来实现。 This可能是如何做到这一点的一个很好的例子。
答案 3 :(得分:0)
不,Tomcat,jetty,jboss或Glassfish几乎是强制性的