Какой быстрый и грязный способ заставить PHP общаться с Java? - PullRequest
3 голосов
/ 24 августа 2009

У нас есть настройка php для наших веб-страниц, защищенная с помощью HTTPS. Веб-приложение взаимодействует с БД, но мы также хотим, чтобы оно взаимодействовало с имеющимся у нас Java-сервером.

Java-сервер - это отдельное Java-приложение (не веб-приложение). Мы просто хотим, чтобы действие обратного вызова после того, как страница PHP закончила запись в БД на сервере Java. Какой хороший способ для этой php-страницы поговорить с java-программой, чтобы что-то сделать?

Ответы [ 6 ]

4 голосов
/ 24 августа 2009

Я обычно рекомендую против быстрой и грязной, но здесь: Вы можете записать данные в файл, если он может быть асинхронным. Затем задание cron из java, регулярно проверяющее наличие файлов такого типа, выполняет указанную команду.

Например, вы можете сбросить слово ExecuteCmd1 в файл. Поток Java читает его, интерпретирует и выбирает, что он должен выполнить метод или класс с тем же именем.

Вы можете сделать то же самое, чтобы вернуться к php.

2 голосов
/ 24 августа 2009

Возможно через соединение TCP / IP. Если ваше Java-приложение запускает сервер, то PHP-скрипт может подключиться и отправить сообщение, информирующее Java-приложение о том, что БД была записана.

1 голос
/ 25 августа 2009

Сделайте быстрый и грязный JSON RPC из PHP в Java. Вы могли бы, вероятно, запустить его в одну чашку кофе.

Используйте CURL для php (http://php.net/curl) и json_encode (), чтобы отправить строку json на ваш Java-сервер. (Прокрутите вниз и найдите класс оболочки curl, который кто-то написал в комментариях. Это просто.)

Используйте JSON (http://www.json.org/java/) в Java для его декодирования и немедленного использования. Отправьте свой ответ также в JSON.

У меня была похожая система XML RPC, работавшая в течение многих лет. PHP -> IP -> Java прекрасно работает.

0 голосов
/ 25 августа 2009
  1. Сколько данных вам нужно передать?

  2. Сколько запросов в секунду?

  3. Должно ли приложение Java обрабатывать запрос немедленно или достаточно для обработки запроса в течение нескольких минут?

  4. Нужно ли приложению Java возвращать данные в браузер пользователя?

Если ответы на вопросы 3 и 4 - «нет» и «нет», вы можете просто создать таблицу базы данных для заданий, сделать так, чтобы приложение PHP вставляло новое задание, а приложение Java опрашивало таблицу заданий каждую минуту или около того.

0 голосов
/ 25 августа 2009

Вы можете попробовать PHP / Java мост . Некоторое время назад я использовал его для использования логики Java внутри Typo3, PHP CMS.

Мой совет, используете ли вы мост или нет: убедитесь, что вы знаете, откуда происходят ошибки, если что-то не работает. Проверьте как PHP, так и Java журналы. Будьте многословны, если возникает исключение.

0 голосов
/ 24 августа 2009

Буферы протокола Google Не так много грязных, но работает и работает хорошо, независимо от того, какой язык вы используете.

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