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

2022-09-02 03:51:53

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

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


答案 1

当然,这是可能的。你可以用mod_cgi来做。

一个非常简单的例子是这样的:

public class HelloWorld
{
    public static void main(String[] args)
    {
        System.out.println("Hello Java CGI world!");
    }
}

然后是一个脚本文件(HelloWorld.shtml -不要忘记执行权限),用于执行 Java 类

#!/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呼叫。但是,是的,这是可能的。


答案 2

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

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


推荐