2016-07-15 14 views
2

私はPHPのyiiアプリケーションでJasperレポートを使用しようとしています。私はすでにジャスパー - レポートサーバーにはっきりとtomcatとApacheのPHPをインストールしました。私はすでにレポートをダウンロードするための設定を行いましたし、私はこのエラーを抱えている:ここ

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

はスクリーンショット:

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

あなたはどのyiiバージョンをお使いですか? –

+0

JavaBridgeとJasperをもう一度インストールして、今は動作しています。しかし、助けてくれてありがとう。 – Andres

答えて

2

私はちょうど同じ問題があったが、Iそれを解決しましたcancelProxyCreationTagプロパティを手動で初期化するとき、JasperCompileManagerを作成するとき:

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

cancelProxyCreationTag ...使用されるが、Java.incで宣言さも初期化されていないプロパティは、ファイルを生成し

0

あるjava.lang.ClassNotFoundExceptionは、(Javaクラスは、Javaブリッジサーバー側で存在しないことを示します一般に、展開されたサーブレット/ .warファイルにあります)。

コードなし正確な回答はできませんが、JDBCの初期化は何らかの形で正しくありません。おそらく、デプロイされたサーブレット(たとえばmysql jdbcコネクタ...)にJDBCドライバを含めるのを忘れたか、または正しく初期化されたorg.altic.jasperReports.JdbcConnectionオブジェクトを渡していない可能性があります。通知メッセージjava_Client::$cancelProxyCreationTagに関する


。これは問題の原因ではないはずです。実際には、クライアントがインスタンスを登録解除するたびに到達したjava_Clientのプロパティが不足しています(たとえば、キャッチされなかった例外など)。この通知メッセージは、Java.incクライアントにリンクされています。別の再試行されたクライアントの場合は、soluble/japha client on githubも参照してください。これはphp/java bridge 6.2.1と互換性があり、元のクライアントでいくつかの修正と拡張が行われています。また、私のコメントもthis issue

関連する問題