Разработка модуля Apache с использованием java

Я вижу много примеров того, как построить модуль Apache с использованием perl, C, но нет документации, описывающей, как создать модуль Apache с использованием java.

Можно ли создать модуль Apache с помощью Java?


person roronoa_zoro    schedule 14.10.2016    source источник


Ответы (1)


Это редко практикуется, поскольку Apache часто порождает несколько процессов (см. preforked) и работает виртуальная машина Java в каждом из них увеличила бы требования к оперативной памяти до небес.

Вы можете настроить Apache для использования только одного многопоточного процесса. В этом режиме расположение имеет больше смысла. Но подобных установок Apache очень мало.

В любом случае, запуск модуля Java Apache мало чем отличается от использования Java в любом другом коде C. Вы пишете оболочку на основе JNI для функций Apache, чтобы сделать их доступными для кода Java, вы создаете виртуальную машину Java, опять же с помощью JNI. JNI — ваш друг. Об этом много документации, много книг. По сути, вам нужно знать, как написать свой собственный модуль Apache на C, и вам нужно знать JNI, и вуаля, вы можете создать модуль Apache на Java.

Если вы ищете библиотеку, которая сделает за вас подъем JNI, то это не по теме Stackoverflow. И большинство разработчиков библиотек все равно туда не идут по причинам, изложенным выше. Вот выдержка из одного из таких начинаний: «Первоначальный план mod_gcj заключался в том, чтобы внедрить среду выполнения libgcj непосредственно в процессы Apache, во многом так же, как это делает mod_perl. Apache использует разветвление в Unix. В результате этого mod_gcj запускается в отдельном процессе, который является ответвлением от Apache и содержит его многопоточную среду выполнения libgcj." - http://mod-gcj.sourceforge.net/about.html

person ArtemGr    schedule 07.11.2016