场景:在用iReport设计表格的时候碰到了如下的异常:
java.lang.ClassNotFoundException: org.codehaus.groovy.control.CompilationFailedException from BaseClassLoader@40109310{VFSClassLoaderPolicy@27204c{
orts.engine.component, org.primefaces.component.chart.ohlc, com.opensymphony.module.sitemesh.velocity, org.primefaces.component.mindmap, org.apache
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.getConstructor(Class.java:1657)
at net.sf.jasperreports.engine.JasperCompileManager.getCompiler(JasperCompileManager.java:690)
at net.sf.jasperreports.engine.JasperCompileManager.getEvaluator(JasperCompileManager.java:263)
分析:从错误的原因看来,貌似是在加载jasper的编译器的时候出现的问题,想起来某个教材中提到如果iReport要被java调用的话需要将编译器设置为"java"
解决方案:设置模板的"language"属性为java
结果:可以正常导出与打印报表