如何在没有Tomcat的情况下在Apache 2.2上运行Java应用程序?

时间:2013-06-11 00:28:46

标签: java apache tomcat

我正在使用Java构建一个不使用JSP或servlet的Web服务,并希望在我的Apache HTTP服务器上运行它而无需安装和配置Tomcat。这是否可行(轻松),我该怎么办呢?

我一直在寻找有关这方面的信息,我唯一遇到的是mod_jk Tomcat连接器,它仍然需要安装Tomcat。我错过了什么吗?

4 个答案:

答案 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几乎是强制性的