java.lang.ClassNotFoundException in PHP-Java bridge

巧了我就是萌 提交于 2019-12-11 09:32:25

问题


I am working on PHP-Java Bridge.

A syntax from my php file looks as follows:

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

I have placed the package file cfa.jar which consist com/odus/apg/cfa/java/address.class file in TOMCAT.HOME/webapps/JavaBridge/WEB-INF/lib

And my php file is located at TOMCAT.HOME/webapps/JavaBridge

After this set-up I get

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

Is this set-up even correct? Are the jar files and php files located in correct directories? How can this error be resolved?


回答1:


I had a similar problem, I think your php file is correctly coded. What you need to do is this :

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

After this command restart your tomcat server using shutdown.sh and then startup.sh Also, restart the apache webserver using sudo service apache2 restart

Ensure that the command in the php file is actually exactly in the same case as per the class names in the jar file and path is also correct.

I agree with Boris that $address = new Java('com.odus.apg.cfa.java.address'); should actually be something like $address = new Java('com.odus.apg.cfa.java.Address');

The problem can be sometimes with the permissions rather than the path, naming etc.



来源:https://stackoverflow.com/questions/25892337/java-lang-classnotfoundexception-in-php-java-bridge

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!