Я тоже недавно столкнулся с этой проблемой. Решение Resin, описанное выше, на самом деле является полной перепиской PHP на Java в духе JRuby, Jython и Rhino. Это называется Quercus. Но я думаю, для вас, как и для меня, отказ от настройки Apache / PHP на самом деле не вариант.
Кроме того, есть и другие проблемы с Quercus: бесплатная версия - GPL, что сложно, если вы разрабатываете коммерческое программное обеспечение (хотя и не так сложно, как хотелось бы, чтобы Resin поверил (но IANAL)), и к тому же бесплатная версия не поддерживает компиляцию в байт-код, поэтому в основном это интерпретатор, написанный на Java.
В итоге я решил просто обмениваться простыми сообщениями по HTTP. Я использовал PHP json_encode()
/ json_decode()
и Java json-lib для кодирования сообщений в формате JSON (простое, на основе текста, хорошее соответствие для модели данных).
Другим интересным и легким вариантом было бы создание Java-кода PHP, а затем использование PHP-директивы include () для извлечения этого по HTTP и его выполнения. Я не пробовал это все же.
Если вы беспокоитесь о реальных HTTP-вызовах (для повышения производительности), то ни одно из этих решений не поможет. Все, что я могу сказать, это то, что у меня не было проблем с PHP и Java в одной локальной сети. Мне кажется, что это не будет проблемой для подавляющего большинства приложений, если вы сохраняете свои RPC-вызовы достаточно подробными (что вы действительно должны делать в любом случае).