Model view controller Griffon:使用JasperReports运行报告时出错

Model view controller Griffon:使用JasperReports运行报告时出错,model-view-controller,jasper-reports,griffon,Model View Controller,Jasper Reports,Griffon,我试图运行此代码,但它给我如下错误: 2013-03-26 22:45:55,546 [pool-2-thread-1] ERROR griffon.util.GriffonExceptionHandler - Uncaught Exception org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoClassDefFoundError: com/lowagie/text/SplitCharacter a

我试图运行此代码,但它给我如下错误:

2013-03-26 22:45:55,546 [pool-2-thread-1] ERROR griffon.util.GriffonExceptionHandler - Uncaught Exception
org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NoClassDefFoundError: com/lowagie/text/SplitCharacter
    at org.codehaus.griffon.runtime.util.AbstractUIThreadHandler$1.run(AbstractUIThreadHandler.java:41)
Caused by: java.lang.NoClassDefFoundError: com/lowagie/text/SplitCharacter
    at net.sf.jasperreports.engine.JasperExportManager.exportToPdfFile(JasperExportManager.java:145)
    at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:497)
    at net.sf.jasperreports.engine.JasperExportManager$exportReportToPdfFile.call(Unknown Source)
    at report.ReportController$_closure1_closure2.doCall(ReportController.groovy:28)
    at report.ReportController$_closure1_closure2.doCall(ReportController.groovy)
    ... 1 more
Caused by: java.lang.ClassNotFoundException: com.lowagie.text.SplitCharacter
    ... 6 more
代码如下:

--ReportController.groovy--

import net.sf.jasperreports.engine.jaspecompilemanager
导入net.sf.jasperreports.engine.jaspeexportmanager
导入net.sf.jasperreports.engine.JasperFillManager
导入net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
导入net.sf.jasperreports.swing.JRViewer
类报表控制器{
//这些将由格里芬注射
def模型
def视图
def报告={
def jasperParameter=[:]
jasperParameter.REPORT_TITLE=“测试报告”
def jasperReport=jasprocmpilemanager.compileReport(“report.jrxml”)
def mapData=[:]
mapData.name=“abc”
mapData.price=1234
def数据=[mapData]
JRBeanCollectionDataSource=新的JRBeanCollectionDataSource(数据)
def jasperPrint=JasperFillManager.fillReport(jasperReport,jasperperparameter,dataSource)
JasperExportManager.exportReportToPdfFile(jasperPrint,“g:/sample.pdf”)
JRViewer=新的JRViewer(jasperPrint)
viewer.setOpaque(true)
viewer.setVisible(true)
def jf=newjavax.swing.JFrame()
添加(查看器)
jf.设置大小(800600)
jf.setVisible(真)
jf.setDefaultCloseOperation(关闭时退出)
}
}
--ReportView.groovy--

--report.jrxml-(我把这个文件放在/staging文件夹中)


我不太了解.jrxml,我从web上获得了这个示例,如果我犯了错误,请更正它


来源:

您应该将itext-x.jar添加到类路径中。检查JasperReports库的pom.xml(我不知道您使用的是什么版本)以获得正确的依赖项(libs及其版本),itext-2.0.8已经与griffon 1.2.0捆绑在一起。对于jasperreport,我使用ver。1.0.0. 我担心的是这个com/lowagie/text/SplitCharacter,有点不对劲。这是关于itext-2.0.8类的文档:为什么找不到呢?JasperReports的1.0.0版本正在使用itext-1.3.1.jar。我将其更改为itext-1.3.1.jar。它仍然像上面那样给我错误。怎么办?问题的根源在哪里(您是否有相同的异常:
java.lang.NoClassDefFoundError:com/lowagie/text/splitCharactere
package report

application(title: 'report',
  preferredSize: [320, 240],
  pack: true,
  //location: [50,50],
  locationByPlatform: true,
  iconImage:   imageIcon('/griffon-icon-48x48.png').image,
  iconImages: [imageIcon('/griffon-icon-48x48.png').image,
               imageIcon('/griffon-icon-32x32.png').image,
               imageIcon('/griffon-icon-16x16.png').image]) {
    gridLayout (cols: 1, rows: 1)
    button (text: 'report', actionPerformed: controller.& report)
}