用iReport开发出一个jasper文件并嵌入到jsp中所遇到的错误以及解决方法
首先去官网上下载iReport客户端http://jasperforge.org/projects/ireport
我用下的是3.6版本的,因为我也是从零开始的,网上有一些关于3.6的资料;所以就从了。
其实下个iReport就可开发了,但我还是建议下一个jasperreports下载地址为 http://jasperforge.org/projects/jasperreports
一开始在网上找资料的时候都是说用这两款软件结合着开发的。后来发现没用到,但里面的一些jar包是后来出错所用到的亮点。
下载安装好iReport之后问题来了。
问题一:bin/ireport.exe 双击之后打不开,这使我想起了大学时候用jBuilder的场景,第一反应就是内存不足,在哪一个.config文件里面把jvm改小一点就行了。但找了半天没有找到一个像的配置文件,后来就到网上找解决方法了。没有找到一个符合要求的答案。在别人电脑上也试了,没用。
我电脑上所配置的java环境变量是jdk是1.5的。
后来的解决方法是安装jdk1.6;环境变量中path出对应的jdk1.6下面的bin,jdk1.6只要配置一个path就行了。配置好之后再次点击
bin/ireport.exe就打开了。
问题二:iReport还涉及到亚洲码的问题,这个到是好解决。
到http://sourceforge.net/projects/itext/files/ 网站上把iText.jar iTextAsian.jar iTextAsianCmaps.jar 在iReport 选择“选项”,弹出的窗口 把几个包加进里面,按“确实”完成。参考http://wenku.baidu.com/view/bfca02d6b14e852458fb571f.html
问题三:报表画完之后Preview不能预览,报编译出错。其实不是开发工具问题,是我们在画报表的时候有不合法的操作。你可以先新建一个空报表把组合面板中Static Text 拉到Title中,之后点击预览。看看能不能成功。
具体怎么在iReport里面开发一个报表可以参考上面所发的链接。
怎样把开发好的.jasper文件嵌入到jsp中可以参考http://topic.csdn.net/u/20080109/13/00B2918E-1310-4FA8-A520-49C53E8E214D.html
问题四:找不到jasper文件路径,这个不用多说,把jasper文件拷贝到WEB-INF\classes文件夹下这样就可以访问到了。相信有过一段j2ee开发经验的人这不是什么问题。
问题五: JasperReports - Run time error: java.lang.NoClassDefFoundError
解决方法把
commons-collections-2.1.jar
commons-digester-1.7.jar
commons-javaflow-20060411.jar
commons-logging-1.0.2.jar
itext-1.3.1.jar
这些包导入到你的项目中 (注:这时候上文中提到到下载的
jasperreports就派上用场了,里面都有。)
参考 http://www.coderanch.com/t/437479/open-source/JasperReports-Run-time-error-java
问题六:
java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException
解决方法把
groovy-all-1.5.5.jar包放入到项目中。
参考 http://edwin.baculsoft.com/2010/11/how-to-handle-jasper-reports-compilationfailedexception/
问题七:当在程序中使用jasperreport加载模板时报class: groovy/runtime/metaclass/java/util/HashMapMetaClass, method: super$2$invokeMethod signature异常
参考 http://chasewin.blog.163.com/blog/static/1617927122010111311571/
或 http://jira.codehaus.org/browse/GROOVY-3802
如果你的lib文件夹下面已经是json-lib-2.1.jar了,还是报这样的错误。那么就去网站http://json-lib.sourceforge.net/下载json-lib-2.4-jdk15.jar替换掉
json-lib-2.1.jar这样问题就解决了。