Выполнять вызовы объекта Java, работающего в существующей JVM с PHP - PullRequest
0 голосов
/ 27 июня 2011

Я попадаю в существующий проект, который подразумевает множество удаленных объектов, взаимодействующих друг с другом для вычисления и передачи данных.

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

В связи с этим я искал способ совершать вызовы существующих объектов Java с помощью PHP, но в большинстве случаев речь шла о том, как создать JVM и создать экземпляры объектов непосредственно в PHP, но не получить доступ к существующей и работающей JVM. .

Итак, что может быть лучшим способом сделать это? Я также слышал о создании сервлета, но на данный момент у меня нет реальных знаний об этом, поэтому я отправляю SOS в бутылке сообществу StackOverflow, надеясь, что кто-то (и я уверен, что это так) найдет хороший ответ на этот вопрос. та проблема: -)

Спасибо за ваше время!

Ответы [ 3 ]

2 голосов
/ 27 июня 2011

Вам нужно изменить приложение Java.Вы должны добавить некоторый удаленный интерфейс к этому приложению, который затем может быть использован PHP.Если вы неопытны в Java, вам не повезло.

Одним из описанных выше вариантов является сервлет, который в основном означает предоставление вашего Java-приложения через интерфейс REST или SOAP.Это может быть или не быть самым простым решением, в зависимости от вашего Java-приложения.Если это веб-приложение, вам повезло.Вы можете попробовать использовать JAX-WS для этого.Недостатком является то, что такое общение связано с накладными расходами.Если ваше java-приложение является программой командной строки, вы можете использовать встроенный контейнер сервлетов, такой как Jetty, или попробовать использовать WSpublish (встроенный в java 6).

Вы можете попробовать Hessian.Это двоичный протокол веб-службы, который поддерживает как PHP, так и Java.Я широко использовал его в java-средах, но он может работать и в сценарии php-java.http://hessian.caucho.com/

Как видите, существует множество вариантов, но все они требуют знаний и опыта в JAVA и не могут быть описаны одним или двумя предложениями.

Самый простой java WSПример, который я видел, можно найти здесь: http://java.dzone.com/articles/jax-ws-hello-world?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+javalobby/frontpage+(Javalobby+/+Java+Zone)

1 голос
/ 27 июня 2011

Есть одна дверь в работающей виртуальной машине Java: расширения управления Java.Дверь должна быть открыта изнутри, поэтому приложение должно предлагать несколько управляемых bean-компонентов, а jvm должен запускаться с некоторыми параметрами.

Но как только это настроено правильно, у вас есть открытый портгде вы можете читать и устанавливать данные из / on экземпляров или выполнять методы.

Я не могу точно сказать, насколько сложно использовать это соединение с jvm из "других языков", может быть, вам просто нужно бытьвозможность эмулировать сериализацию объектов javas с помощью php.Но это может быть предложением решения вашей актуальной проблемы.

1 голос
/ 27 июня 2011

возможно, вы можете попробовать проект PHP / Java Bridge: http://php -java-bridge.sourceforge.net / pjb /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...