20

我正在使用不使用 JSP 或 servlet 的 Java 构建 Web 服务,并且希望在我的 Apache HTTP 服务器上运行它,而无需安装和配置 Tomcat。这可能(很容易)吗,我该怎么做?

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

4

4 回答 4

18

当然有可能。你可以用 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 调用。但是,是的,这是可能的。

于 2014-05-29T15:58:09.727 回答
6

首先,Servlets 是用于 Web 开发的 Java 的基础。所以,无论你在做什么 Web 开发,比如 Web 服务,你都需要一个 Servlet 容器,比如 Tomcat。

所以你的问题的答案是“你不能只在 Apache HTTP Server 上运行它”,因为它不是一个 Servlet 容器。

于 2013-06-11T00:38:28.260 回答
4

目前尚不完全清楚您想要做什么,但我猜您想运行一个独立的 Java 应用程序,该应用程序可以处理 HTTP 请求并通过 Apache 公开它。如果是这种情况,您可以通过使用 mod_proxy 配置 Apache 来实现。 可能是如何做到这一点的一个很好的例子。

于 2013-06-11T00:33:37.260 回答
0

不,Tomcat、jetty、jboss 或 Glassfish 几乎是强制性的

于 2013-06-11T00:31:32.110 回答