2010-05-07 5 views
3

Я интегрировал JasperReports на моей NetBeans платформы, и я могу генерировать отчеты, используя следующий код:Получение исключения java.lang.NoSuchMethodError при использовании GWT + JasperReports

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 с помощью followind код:

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).

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

Благодаря

+0

Какая ошибка вы получаете? –

+0

Да, лучшая классификация ошибок определенно поможет. – markovuksanovic

+0

Ошибка, которую я получаю: com.google.gwt.user.server.rpc.UnexpectedException: метод службы 'public abstract java.lang.Boolean com.client.service.GenerateReport()' сделал неожиданное исключение: java. lang.NoSuchMethodError: net.sf.jasperreports.engine.fonts.SimpleFontFamily.setExportFonts (Ljava/util/Map); – Barry

ответ

-1

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

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

+0

Он не использует GAE! – Maksim

+0

@Maksim - не делает * намеренно * использование GAE. Плагин GWT eclipse * по умолчанию * имеет GAE. Многие, многие люди используют его по умолчанию, и реализуют его только тогда, когда они сталкиваются с исключением, не слишком отличающимся от того, которое было вставлено выше. –

+0

Как отключить GAE в Netbeans? – Barry