2016-10-14 29 views
1

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

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

回答

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一样。不幸的是,使用线程和Apache的传统处理模型与Java之间有一些冲突因此,mod_gcj运行在一个独立的进程中,该进程是从Apache派生的,并承载其多线程libgcj运行时。“” - http://mod-gcj.sourceforge.net/about.html