PHP-Java 桥中的 java.lang.ClassNotFoundException

标签 java php tomcat classnotfoundexception php-java-bridge

我正在研究 PHP-Java Bridge。

我的 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 文件是否位于正确的目录中?如何解决此错误?

最佳答案

我遇到了类似的问题,我认为您的 php 文件编码正确。你需要做的是:

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

执行此命令后,使用 shutdown.shstartup.sh 重新启动您的 tomcat 服务器 此外,使用 sudo service apache2 restart

重新启动 apache 网络服务器

确保 php 文件中的命令实际上与 jar 文件中的类名完全相同,路径也正确。

我同意 Boris 的观点,$address = new Java('com.odus.apg.cfa.java.address'); 实际上应该是 $address = new Java( 'com.odus.apg.cfa.java.Address');

问题有时可能出在权限上,而不是路径、命名等。

关于PHP-Java 桥中的 java.lang.ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25892337/

相关文章:

PHP:如何提供正确的内容类型(取决于文件扩展名?)?

php - subscr_payment 使用 paypal ipn 模拟器

php - 在 Grocery 店上传视频

java - 在 Eclipse 中启动 Tomcat 时出错

Tomcat重写阀问题

tomcat - 如何以管理员身份启动tomcat服务

java - SQL:如何进行查询,检查列上具有特定值的行是否多次引用外键?

java - 使用java swing和eclipse从目录添加图像到标签中并显示在jpanel中

java - @OneToMany Map 默默删除 Map 的键

java - 如何在全屏下使用正确的LWJGL DisplayMode?