PHP вызывает Java-приложения - PullRequest
       0

PHP вызывает Java-приложения

0 голосов
/ 02 февраля 2012

У меня проблема с моим веб-проектом.

Ранее, когда мой профессор спрашивал меня о создании онлайн-приложения для судей, я решил реализовать его с помощью php, а не Java-сервлета, так как я думал, что java-сервлет довольно сложен.

Тогда проблема приходит. Для онлайн-судьи я должен использовать серверную java-программу для обработки пользовательских кодов. То есть каждый раз, когда пользователь отправляет что-то, php вызывает виртуальную машину Java и вызывает приложение Java. Тем не менее, чтобы вызвать приложение Java, мой собственный путь теперь заключается в использовании командной строки popen ("start java -jar \" $ FILE_ROOT / OnlineJudge.jar \ "", "r");

Это прекрасно работает, но, учитывая загрузку виртуальной машины Java, на самом деле она очень медленная и подвержена ошибкам. Поэтому мне было интересно, есть ли более эффективные способы для PHP вызывать локальные Java-программы на сервере. Потому что позже я обнаружил, что мне все еще нужно вызывать больше Java из php.

Любая идея будет оценена. Спасибо.

Ответы [ 3 ]

1 голос
/ 02 февраля 2012

В зависимости от того, как написано Java-приложение, скорее всего не составит труда преобразовать его в сервлет. Как только это сервлет, запустите его под Jetty или Tomcat, а затем просто подключите к нему php через CURL и поместите / получите данные из сервлета.

Java-сервлеты довольно просты. Если вы используете внешний каркас, такой как Spring, это становится еще проще, но если нет, вам просто нужно расширить javax.servlet.http.HttpServlet , а затем настроить его в своем файле web.xml.

Это что-то вроде хака, но это не займет у тебя слишком много времени.

1 голос
/ 02 февраля 2012

рассматривали ли вы php-java bridge , это довольно полезно, он использует XML для связи между php и java.

Вам нужно будет запустить JVM один раз, и компонент моста поможет с коммуникацией.

здесь некоторые примеры, здесь вы можете найти простой пример для подключения php и java

0 голосов
/ 02 февраля 2012

Также взгляните на exec для выполнения командной строки. Я использовал его, чтобы выключить компьютер после долгого ночного задания.

...