java.lang.ClassNotFoundException в мосте PHP-Java

Я работаю над PHP-Java Bridge.

Синтаксис из моего php-файла выглядит следующим образом:

require_once("java/Java.inc");
$address = new Java('com.odus.apg.cfa.java.address');

Я поместил файл пакета cfa.jar, который состоит ком / блоки ODU / APG / КФ / Java / address.class файл в TOMCAT.HOME / WebApps / JavaBridge / WEB-INF / Lib

И мой PHP-файл находится на TOMCAT.HOME / WebApps / JavaBridge

После этой установки я получаю

Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new com.odus.apg.cfa.java.address. Cause: java.lang.ClassNotFoundException: com.odus.apg.cfa.java.address VM: 1.7.0_40@http://java.oracle.com/" at: #-18 java.net.URLClassLoader$1.run(Unknown Source) #-17 java.net.URLClassLoader$1.run(Unknown Source) #-16 java.security.AccessController.doPrivileged(Native Method) #-15 java.net.URLClassLoader.findClass(Unknown Source) #-14 java.lang.ClassLoader.loadClass(Unknown Source) #-13 sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) #-12 java.lang.ClassLoader.loadClass(Unknown Source) #-11 java.lang.Class.forName0(Native Method) #-10 java.lang.Class.forName(Unknown Source) #-9 php.java.bridge.Util.classForName(Util.java:1518) #-8 php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445) #-7 php.java.bridge.Request.handleRequest(Request.java:458) #-6 php.java.bridge.Request.handleRequests(Request.java:500) #-5 php.java.bridge.JavaBridge.handleRequests(JavaBridge.java:150) #-4 php in /usr/share/apache-tomcat-7.0.55/webapps/JavaBridge/java/Java.inc on line 195

Является ли эта установка даже правильной? Находятся ли файлы jar и php в правильных каталогах? Как можно устранить эту ошибку?

1

Решение

У меня была похожая проблема, я думаю, что ваш php файл правильно закодирован. Что вам нужно сделать, это:

sudo chown yourprofile:yourprofile -R TOMCAT.HOME/webapps/JavaBridge/WEB-INF/lib/cfa.jar

После этой команды перезапустите ваш сервер Tomcat, используя shutdown.sh а потом startup.sh
Также перезапустите веб-сервер apache, используя sudo service apache2 restart

Убедитесь, что команда в файле php на самом деле точно в том же случае, что и имена классов в файле jar, и путь также правильный.

Я согласен с Борисом, что $address = new Java('com.odus.apg.cfa.java.address'); должно быть что-то вроде $address = new Java('com.odus.apg.cfa.java.Address');

Иногда проблема может быть связана с разрешениями, а не с путями, именами и т. Д.

1

Другие решения

Других решений пока нет …