使用GWT + JasperReports时获取java.lang.NoSuchMethodError异常

时间:2010-05-07 18:25:19

标签: gwt jasper-reports

我已在JasperReports平台上集成了NetBeans,我可以使用以下代码生成报告:

Map<String, Object> params = new HashMap<String, Object>();
Connection conn = DriverManager.getConnection("databaseUrl", "userid", "password");
JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, conn);
JasperExportManager.exportReportToHtmlFile(jasperPrint, reportDest);
JasperViewer.viewReport(jasperPrint);

这个东西很完美。

但我并没有尝试将JasperReportsGWT进行整合。我的服务器为GlassFish服务器。

我使用followind代码获取Connection对象:

public static Connection getConnection() {
    try {
        String JNDI = "JNDI name";
        InitialContext initCtx = new InitialContext();
        javax.sql.DataSource ds = (javax.sql.DataSource) initCtx.lookup(JNDI);
        Connection conn = (Connection) ds.getConnection();
        return conn;
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return null;
}

然后

Map<String, Object> params = new HashMap<String, Object>();
JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, getConnection());
JasperExportManager.exportReportToHtmlFile(jasperPrint, reportDest);
JasperViewer.viewReport(jasperPrint);

但我总是得到一个错误。这是一个堆栈跟踪:

com.google.gwt.user.server.rpc.UnexpectedException: 
Service method 'public abstract java.lang.Boolean com.client.service.GenerateReport()'
threw an unexpected exception: java.lang.NoSuchMethodError: 
net.sf.jasperreports.engine.fonts.SimpleFontFamily.setExportFonts(Ljava/util/Map‌​);

我在服务器上实现这个。我正在进行RPC调用,以便在单击按钮时使此方法有效。

你能帮我解决一下这个问题。 (即将JasperReportsGWT)进行整合。

我非常感谢有些代码的任何解释,因为我只是一个初学者。

谢谢

1 个答案:

答案 0 :(得分:-1)

如果没有错误消息的帮助,我会说您在Eclipse项目首选项中启用了Google App Engine。 GAE 允许您写入文件系统,或者调用数据库。

尝试禁用GAE,事情应该可以正常工作。