PHP получает данные или взаимодействует с запущенным процессом Java. (Я думаю, что отличается от моста PHP / Java) - PullRequest
2 голосов
/ 26 февраля 2011

У меня есть веб-сервер apache2 с установленным и работающим php. Мне интересно, есть ли какой-нибудь способ, которым я могу получить PHP-скрипт для доступа к Java-программе, которая постоянно работает, в основном просто для получения информации, которую отслеживает процесс. Java-программа не является веб-приложением или запущена на сервере apache. Это отдельная программа.

Я изучал системы PHP / Java Bridge, и все, что они, похоже, делают - это позволяет вам запускать программы на Java из PHP и наоборот, а это не то, что мне нужно. Я могу придумать способ сделать это через веб-сервис и SOAP, работающие на localhost, но если есть способ избежать этого и я могу получить прямой доступ к Java-программе, я мог бы заставить свое веб-приложение работать намного быстрее.

Приложение Java, с которым я пытаюсь «поговорить», - это программа, которую я написал, поэтому у меня есть доступ к исходному коду, чтобы внести необходимые изменения, если что-то в программе Java необходимо настроить.

Заранее спасибо, я искал что-то вроде этого.

Ответы [ 4 ]

3 голосов
/ 26 февраля 2011

Вам нужно будет так или иначе общаться с процессом Java. Поскольку веб-служба слишком тяжелая, вы можете просто общаться через сокет с пользовательским текстовым или двоичным протоколом.

Или, возможно, вы также можете заставить программу Java писать в базу данных каждые n секунд и читать из базы данных в своем PHP-скрипте.

РЕДАКТИРОВАТЬ:

Посмотрите на http://www.php.net/manual/en/sockets.examples.php пример клиента сокета в PHP.

Посмотрите на http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html пример сокета сервера в Java.

1 голос
/ 27 февраля 2011

Мосты PHP / Java позволяют вам вызывать работающую Java-программу из PHP.

Чтение: http://en.wikipedia.org/wiki/PHP/Java_Bridge

Чтение: http://php -java-bridge.sourceforge.net / pjb / desktop-apps.php

Мосты фактически используют локальную сокетную связь от faq :

<?php
    include_once("Java.inc");

$i1 = new Java("your.class", "1");
$i2 = new Java("your.class", "2");
$i3 = $i1->add($i2);
echo $i3->toString() . "\n";
?>

См. Java.inc . И отредактируйте свой код Java, чтобы он содержал следующую строку:

static final php.java.bridge.JavaBridgeRunner runner = php.java.bridge.JavaBridgeRunner.getInstance("9267");
0 голосов
/ 27 февраля 2011

Вы можете посмотреть на Quercus / Resin.PHP работает внутри Java на веб-сервере Java.Вы можете вызывать код Java, как если бы это были функции / команды PHP.Все команды PHP не поддерживаются, большинство из них.Например, вы можете запустить WordPress под Quercus.http://www.caucho.com/resin-3.0/quercus/

0 голосов
/ 26 февраля 2011

Эй, так что в основном вам нужно запустить приложение java из php и получить ответ от приложения java?

Если это так - я не вижу никаких проблем с php / java-bridge.Например, я успешно запустил метод шифрования Java для пользовательского шифрования в php.

...