У меня возникли проблемы с настройкой настройки Php-Java Bridge
.
Я объясню, что я сделал.
ВСЕ ИДЕТ НОРМАЛЬНО
Теперь моя проблема начинается здесь, когда я пытаюсь получить доступ к файлу класса java из php. Образец test.php
– это то, что я создаю, и вставляю в него следующий код.
<?php require_once("http://example.com:portnumber/JavaBridge/java/Java.inc"); $System = java("java.lang.System"); echo $System->getProperties(); //This Part echo's correctly and shows the data so it means i can access Java.inc Correctly $path_e24class = getcwd(). '/e24PaymentPipe.class'; //This part fails both test.php and java class file e24PaymentPipe.class are in the same directory in publich_html folder java_require($path_e24class); $pipe = new Java("e24PaymentPipe"); $pipe->setAction("1"); ?>
на<?php require_once("http://example.com:portnumber/JavaBridge/java/Java.inc"); $System = java("java.lang.System"); echo $System->getProperties(); //This Part echo's correctly and shows the data so it means i can access Java.inc Correctly $path_e24class = getcwd(). '/e24PaymentPipe.class'; //This part fails both test.php and java class file e24PaymentPipe.class are in the same directory in publich_html folder java_require($path_e24class); $pipe = new Java("e24PaymentPipe"); $pipe->setAction("1"); ?>
Содержимое моего сайта находится в папке public_html, а файл WAR развернут в приватном jvm.
Это сообщение об ошибке, которое я получаю.
1) Warning: java_require() not supported anymore. Please use tomcat or jee hot deployment instead Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new e24PaymentPipe. Cause: java.lang.ClassNotFoundException: e24PaymentPipe VM: 1.6.0_22@http://java.sun.com/" at: #-10 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) #-9 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) #-8 java.lang.Class.forName0(Native Method) #-7 java.lang.Class.forName(Class.java:247) #-6 php.java.bridge.Util.classForName(Util.java:1518) #-5 php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445) #-4 php.java.bridge.Request.handleRequest(Request.java:458) #-3 php.java.bridge.Request.handleRequests(Request.java:500) #-2 php.java.bridge.http.ContextRunner.run(ContextRunner.java:145) #-1 php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60) #0 http://example.com:portnumber/JavaBridge/java/Java.inc(232): java_ThrowExceptionProxyFactory->getProxy(3, 'java.util.Prope...', 'T', false) #1
Наконец, я не знаю много о java. Так что здесь застрял, не зная, что делать.
Вот отличный шаг за шагом учебник вы можете следовать, что показывает все, что нужно! Это немного старомодно (2007), но помогло мне некоторое время назад.
Есть и другой вариант. Вы можете установить Apache Tomcat и развернуть свою войну там. У вас может быть даже несколько экземпляров tomcat одновременно с вашим httpd, запущенным одновременно на одном компьютере, если вы уважаете настройки порта. Вы даже можете использовать их с Apache httpd.
вы можете попробовать следующее:
удачи!
<?php require_once("JavaBridge/java/Java.inc"); try { $hd = new java("hdfs.HDFS"); $hd->get("hdfs://master:9000/user/hadoop/test-in/logo_cn.png", "/home/hadoop/1.png"); } catch (JavaException $ex) { echo "An exception occured: "; echo $ex; echo "<br>\n";} ?>
Вы можете использовать эту реализацию php для github, которая работает с php 5.3.
См. Кредиты на git readme для получения дополнительной информации.
Вы можете попробовать это; поместите JavaBridge.jar в папку lib tomcat, например apache-tomcat-7.0.12 / lib.
Перезагрузите сервер tomcat, а затем,
$pipe = new java("com.aciworldwide.commerce.gateway.plugins.e24PaymentPipe"); $pipe->setAction("1");
Таким образом, я создал версию PHP-объекта.
Почему бы вам не поместить класс e24PaymentPipe в путь класса Java-приложения и пропустить две строки ниже:
// $path_e24class = getcwd(). '/e24PaymentPipe.class'; // java_require($path_e24class); $pipe = new java("fully.qualified.classpath.e24PaymentPipe");
Вы смешиваете действия на стороне PHP и Java. в теории java_require (который устарел) был разработан для работы на стороне Java. Вы указываете путь на стороне PHP.
Вы можете сэкономить много горя, используя чистую реализацию PHP библиотеки e24PaymentPipe.
отказ
Ссылка на мой gythub-репо библиотеки, но я не писал ее. См. Readme для оригинальных кредитов.