【发布时间】:2014-11-11 14:15:27
【问题描述】:
我正在开发 PHP-Java 桥。
我的 php 文件中的语法如下所示:
require_once("java/Java.inc");
$address = new Java('com.odus.apg.cfa.java.address');
我已将包含 com/odus/apg/cfa/java/address.class 文件的包文件 cfa.jar 放在 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 文件是否位于正确的目录中?如何解决此错误?
【问题讨论】:
-
你确定这是一个类:
com.odus.apg.cfa.java.address?在我看来,它就像一个包裹。 -
cfa.jar里面的类文件address.class
-
好的。 Java 中的类应该在
PascalCase- 所以Address。但这不是问题,只是(非常)令人困惑。 -
好像php文件找不到cfa.jar 是不是java中有语法可以引用这些jar文件
-
只是一个 tomcat 重启解决了我的问题,因为 tomcat/java Bridge 在启动时索引 jars
标签: java php tomcat classnotfoundexception php-java-bridge