我试图在PHP yii应用程序中使用Jasper报告。我已经安装了jasper-report-server,其中有明显的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
屏幕截图:
致命错误:未捕获[[o:异常]:" java.lang.Exception:CreateInstance失败:new org.altic.jasperReports.JdbcConnection。原因:java.lang.ClassNotFoundException:org.altic.jasperReports.JdbcConnection VM:1.7.0_101 @ {{}}}" 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://java.oracle.com/ :http://localhost:8080/JavaBridge/java/Java.inc(232)中的{java_ThrowExceptionProxyFactory-> getProxy(4,' php.java.bridge ...',' T',false)#1 http://localho在线195]
答案 0 :(得分:2)
我遇到了同样的问题,在创建JasperCompileManager时,我解决了 手动初始化cancelProxyCreationTag
属性 :
$compileManager = new \JavaClass("net.sf.jasperreports.engine.JasperCompileManager");
$compileManager->__client->cancelProxyCreationTag = 0;
cancelProxyCreationTag
是在Java.inc生成的文件中使用但未声明或初始化的属性...
答案 1 :(得分:0)
java.lang.ClassNotFoundException
表示Java桥接服务器端不存在Java类(通常在已部署的servlet / .war文件中)。
没有代码我无法给出准确的答案,但它看起来你的JDBC初始化在某种程度上是不正确的。也许你忘了在已部署的servlet中包含JDBC驱动程序(例如mysql jdbc连接器......)或者没有传递正确初始化的org.altic.jasperReports.JdbcConnection
对象。
关于通知消息java_Client::$cancelProxyCreationTag
。它不应该是问题的原因,它实际上是客户端取消注册其实例时(例如未捕获的异常)在java_Client上丢失的属性。此通知消息链接到Java.inc客户端,对于另一个重新设计的客户端,请参阅soluble/japha client on github,它与php / java网桥6.2.1兼容,并在原始客户端上提供一些修复和增强功能。另请参阅我对this issue