【问题标题】:Developing Apache Module using java使用 java 开发 Apache 模块
【发布时间】:2017-02-23 12:54:19
【问题描述】:

我看到很多关于如何使用 perl、C 构建 Apache 模块的示例,但没有文档描述如何使用 java 构建 Apache 模块。

是否可以使用 Java 构建 Apache 模块?

【问题讨论】:

    标签: apache apache-modules


    【解决方案1】:

    这很少被实践,因为 Apache 经常产生多个进程(参见preforked)并且在每个进程中运行 Java 虚拟机会使 RAM 需求膨胀到很高的水平。

    可以将 Apache 配置为仅使用单个进程,线程化。在这种模式下,安排更有意义。但是像这样的 Apache 安装很少见。

    无论如何,运行 Java Apache 模块与在任何其他 C 代码中使用 Java 并没有太大区别。您围绕 Apache 函数编写了一个基于 JNI 的包装器,以使它们可用于 Java 代码,您再次在 JNI 的帮助下生成了 Java 虚拟机。 JNI 是你的朋友。有很多关于它的文档,很多书籍。基本上,你需要知道如何用 C 编写你自己的 Apache 模块,你需要知道 JNI,瞧,你可以用 Java 构建一个 Apache 模块。

    如果您正在寻找一个库来为您执行 JNI 提升,那么这不是 Stackoverflow 上的主题。由于上述原因,大多数图书馆开发人员都不会去那里。以下是此类项目的摘录:“mod_gcj 的最初计划是将 libgcj 运行时直接嵌入到 Apache 进程中,就像 mod_perl 所做的那样。不幸的是,使用线程和 Java 的传统处理模型之间存在一些冲突。 Apache 在 Unix 上使用 forking。因此,mod_gcj 在一个单独的进程中运行,该进程从 Apache 派生并托管其多线程 libgcj 运行时。" - http://mod-gcj.sourceforge.net/about.html

    【讨论】:

      猜你喜欢
      • 2011-03-26
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多