我正在使用不使用 JSP 或 servlet 的 Java 构建 Web 服务,并且希望在我的 Apache HTTP 服务器上运行它,而无需安装和配置 Tomcat。这可能(很容易)吗,我该怎么做?
我一直在搜索这方面的信息,唯一遇到的是 mod_jk Tomcat 连接器,它仍然需要安装 Tomcat。我错过了什么吗?
当然有可能。你可以用 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 调用。但是,是的,这是可能的。
首先,Servlets 是用于 Web 开发的 Java 的基础。所以,无论你在做什么 Web 开发,比如 Web 服务,你都需要一个 Servlet 容器,比如 Tomcat。
所以你的问题的答案是“你不能只在 Apache HTTP Server 上运行它”,因为它不是一个 Servlet 容器。
目前尚不完全清楚您想要做什么,但我猜您想运行一个独立的 Java 应用程序,该应用程序可以处理 HTTP 请求并通过 Apache 公开它。如果是这种情况,您可以通过使用 mod_proxy 配置 Apache 来实现。 这可能是如何做到这一点的一个很好的例子。
不,Tomcat、jetty、jboss 或 Glassfish 几乎是强制性的