我正在开发PHP-Java Bridge。
我的php文件的语法如下:
require_once("java/Java.inc");
$address = new Java('com.odus.apg.cfa.java.address');
我在 TOMCAT.HOME / webapps / JavaBridge / WEB-INF中放置了包含 com / odus / apg / cfa / java / address.class 文件的包文件cfa.jar / 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文件是否位于正确的目录中?如何解决这个错误?
答案 0 :(得分:1)
我有类似的问题,我认为你的php文件编码正确。你需要做的是:
sudo chown yourprofile:yourprofile -R TOMCAT.HOME/webapps/JavaBridge/WEB-INF/lib/cfa.jar
执行此命令后,使用shutdown.sh
然后startup.sh
重新启动tomcat服务器
另外,使用sudo service apache2 restart
确保php文件中的命令实际上与jar文件中的类名完全相同,路径也是正确的。
我同意Boris的观点,$address = new Java('com.odus.apg.cfa.java.address');
实际上应该是$address = new Java('com.odus.apg.cfa.java.Address');
问题有时可能是权限而不是路径,命名等。