2016-07-15 6 views
2

Ich versuche, Jasper-Bericht mit einer PHP-yii-Anwendung zu verwenden. Ich habe bereits jasper-report-server mit offensichtlich tomcat und apache mit php installiert. Ich habe bereits die Konfiguration macht die Berichte zum Download und ich habe diesen Fehler:

Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new org.altic.jasperReports.JdbcConnection. Cause: java.lang.ClassNotFoundException: org.altic.jasperReports.JdbcConnection 

Screenshot hier:

screenshot

Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new org.altic.jasperReports.JdbcConnection. Cause: java.lang.ClassNotFoundException: org.altic.jasperReports.JdbcConnection VM: [email protected]http://java.oracle.com/ " at: #-10 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702) #-9 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547) #-8 java.lang.Class.forName0(Native Method) #-7 java.lang.Class.forName(Class.java:278) #-6 php.java.bridge.Util.classForName(Util.java:1518) #-5 php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445) #-4 php.java.bridge.Request.handleRequest(Request.java:458) #-3 php.java.bridge.Request.handleRequests(Request.java:500) #-2 php.java.bridge.http.ContextRunner.run(ContextRunner.java:145) #-1 php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60) #0 http://localhost:8080/JavaBridge/java/Java.inc(232) : java_ThrowExceptionProxyFactory->getProxy(4, 'php.java.bridge...', 'T', false) #1 http://localho in http://localhost:8080/JavaBridge/java/Java.inc on line 195]

+0

Was yii Version verwenden Sie? –

+0

Ich habe wieder JavaBridge und Jasper installiert und jetzt funktioniert. Aber danke für deine Hilfe. – Andres

Antwort

2

Ich hatte gerade das gleiche Problem, und ich löste es Initialisierung der cancelProxyCreationTag Eigenschaft manuell, beim Erstellen von JasperCompileManager:

$compileManager = new \JavaClass("net.sf.jasperreports.engine.JasperCompileManager"); 
$compileManager->__client->cancelProxyCreationTag = 0; 

Die cancelProxyCreationTag ist eine Eigenschaft, die verwendet wird, aber nicht erklärt, noch in der Java.inc initialisiert generierte Datei ...

0

Die java.lang.ClassNotFoundException zeigt an, dass eine Java-Klasse auf der Java-Bridge Server-Seite nicht vorhanden ist (im Allgemeinen in der bereitgestellten Servlet/WAR-Datei).

Ohne den Code kann ich keine genaue Antwort geben, aber es sieht aus wie Ihre JDBC-Initialisierung in irgendeiner Weise nicht korrekt ist. Vielleicht haben Sie vergessen, den JDBC-Treiber in das bereitgestellte Servlet aufzunehmen (zum Beispiel den mysql-jdbc-Konnektor ...) oder ein korrekt initialisiertes org.altic.jasperReports.JdbcConnection-Objekt nicht übergeben.


bezüglich der Hinweismeldung java_Client::$cancelProxyCreationTag. Es sollte nicht die Ursache des Problems sein, es ist tatsächlich eine fehlende Eigenschaft auf dem java_Client, die erreicht wird, wenn der Client seine Instanz aufhebt (zum Beispiel bei einer nicht abgefangenen Ausnahme). Diese Nachricht ist mit dem Java.inc-Client verbunden, für einen alternativen überarbeiteten Client siehe auch soluble/japha client on github, sie ist kompatibel mit der php/java-Bridge 6.2.1 und bietet einige Korrekturen und Verbesserungen auf dem ursprünglichen Client. Siehe auch meinen Kommentar für this issue

Verwandte Themen