Как вызвать пользовательские методы Java из PHP?

Я новичок в PHP и Java. В настоящее время я работаю над проектом, который вызывает класс Java и его методы в коде PHP. Я создаю доказательство концепции для этого. Проблема в том, что я не могу подключить пользовательский класс, созданный в Java. Более того, можно сказать, что я не знаю, как это сделать. Я использовал файлы java.inc и javabridge.jar для подключения к системным классам, но не смог подключиться к простому классу. Шаг, за которым я следовал:

Создан пакет Java, класс называется clsForPHP, и он имеет метод sum(), который принимает 2 параметра и возвращает целочисленное значение. (Это создается с помощью MyEclipse IDE) Теперь я пытаюсь вызвать эту функцию из PHP. Я скопировал jar-файл, содержащий пакет, в проект PHP. (Eclipse- Helios - это IDE) $d= новая java("clsForPHP.class");

Пожалуйста помоги!! Я много искал, но не смог найти правильного решения. Я думаю, что этот пакет должен быть добавлен в файл java.inc, но я не знаю, как это сделать.

1 ответ

Решение

Прежде всего установите Tomcat6 и Java в вашем Unix-устройстве. Скорее всего, ваш Tomcat будет на 8080 порту. Теперь загрузите JavaBridge.war с http://php-java-bridge.sourceforge.net/pjb/ распакуйте его. Затем из папки WEB-INF/lib скопируйте JavaBridge.jar,php-servlet.jar и php-script.jar в папку lib Tomcat. Затем скопируйте JavaBridge.war в папку веб-приложений Tomcat6 и перезапустите службу tomcat6, которая автоматически развернет папку JavaBridge в ваших веб-приложениях.

Теперь попробуйте просмотреть http://localhost:8080/JavaBridge/. Если вы работаете, чем ваш PHP/Java Bridge установлен. Первая часть окончена.

Теперь сделайте тестовую страницу в вашем Apache, как показано ниже

<?php
      require_once("http://localhost:8080/JavaBridge/java/Java.inc");
      echo java("java.lang.System")->getProperties();
?>

и запустить его. Если это работает, тогда вы можете начать работать со своей работой. Если это не работает, значит, у вас проблема с файлом php.ini. Попробуйте включить allow_url_once=on в вашем php.ini.

Теперь просто скопируйте ваш jav-файл jar в папку tomcat /webapps/JavaBridge/WEB-INF/lib/ и просто поместите следующую строку на своей странице, где бы вы ни хотели, чтобы java работал

require_once("http://localhost:8080/JavaBridge/java/Java.inc");
$yourObj = Javav("your java class");
$yourObj->yourMethod();
$yourObj->setProperty("xxx");

Надеюсь, это поможет вам.

Если у вас все еще есть проблемы, вернитесь.

Да, это вызовет ошибку, потому что вы, должно быть, не скопировали ваш скомпилированный java-файл, который может быть вашим jar-файлом в PHP / Java Bridge.

Вы можете сделать следующие 2 варианта пути

  1. Если вы определили свой CATALINA_HOME, скопируйте $CATALINA_HOME/webapps/JavaBridge/WEB-INF/lib
  2. Если вы не определили свой CATALINA_HOME, скопируйте /var/lib/tomcat6/webapps/webapps/JavaBridge/WEB-INF/lib

Путь, который я говорю, предполагает, что вы установили tomcat6, возможно, ваша папка tomcat webapps может находиться по другому пути.

Другие вопросы по тегам