2014-09-17 2 views
1

PHP-Java Bridge에서 작업 중입니다.PHP-Java 브릿지의 java.lang.ClassNotFoundException

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

내가 COM/odus/APG/CFA/자바/address.class 파일을 구성 패키지 파일 cfa.jar을 배치 한 다음과 같이

내 PHP 파일에서 구문 본다 tomcat.home이/웹 어플리케이션/JavaBridge/WEB-INF/lib에

그리고 내 PHP 파일이 tomcat.home이/웹 어플리케이션/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: [email protected]://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

당신이이 클래스 확신 등 이름 문제는 권한이 아닌 경로로 때로는 될 수 $address = new Java('com.odus.apg.cfa.java.Address');

같은 무언가를해야한다는 보리스에 동의합니다. odus.apg.cfa.java.address'? 그것은 나에게 패키지처럼 보인다. –

+0

cfa.jar 내부의 클래스 파일 address.class – dexterslab

+0

좋습니다. Java 클래스는'PascalCase'에 있어야합니다 - 그래서'Address'. 그러나 그것은 문제가 아니며 단지 (매우) 혼란 스럽습니다. –

답변

1

나는 비슷한 문제가 있었는데, 당신의 PHP 파일이 올바르게 코딩되었다고 생각합니다. 당신이해야 할 것은 이것이다 : shutdown.sh하고 또한 다음 startup.sh 를 사용하여 Tomcat 서버를 다시 시작

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

이 명령 한 후, sudo service apache2 restart

가 있는지 확인하여 아파치 웹 서버를 다시 시작하는 PHP 파일의 명령 실제로 jar 파일의 클래스 이름과 똑같은 경우이며 경로도 정확합니다. `COM :

나는 $address = new Java('com.odus.apg.cfa.java.address'); 실제로