Получение исключения java.lang.NoSuchMethodError при использовании GWT + JasperReports - PullRequest
3 голосов
/ 07 мая 2010

Я интегрировал 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);

Это прекрасно работает.

Но не яЯ пытаюсь интегрировать JasperReports с GWT.У меня есть сервер в качестве GlassFish сервера.

Я получаю объект 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, чтобы этот метод работал при нажатии кнопки.

Не могли бы вы помочь мне, как работать над этим.(То есть для интеграции JasperReports с GWT).

Я был бы очень признателен за любое объяснение с некоторым кодом, так как я только начинающий.

Спасибо

1 Ответ

0 голосов
/ 07 мая 2010

Без помощи сообщений об ошибках я бы сказал, что у вас включен Google App Engine в настройках проекта eclipse. GAE НЕ позволяет записывать в файловую систему или совершать вызовы в базу данных.

Попробуйте отключить GAE, и все должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...