3 Stimmen

Erhalten der java.lang.NoSuchMethodError-Ausnahme bei Verwendung von GWT + JasperReports

Ich habe integriert JasperReports in meinem NetBeans Plattform und ich kann mit dem folgenden Code Berichte erstellen:

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

Dieses Zeug funktioniert perfekt.

Aber nicht ich versuche zu integrieren JasperReports con GWT . Ich habe meinen Server als GlassFish Server.

Ich erhalte das Verbindungsobjekt mit dem folgenden Code:

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;
}

und dann

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

aber ich erhalte immer eine Fehlermeldung. Hier ist ein Stacktrace:

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

Ich bin dabei, dies auf dem Server zu implementieren. Ich bin mit RPC-Aufrufe, um diese Methode zu arbeiten, wenn eine Schaltfläche angeklickt wird.

Können Sie mir bitte helfen, wie ich das Problem lösen kann. (Das heißt, zu integrieren JasperReports con GWT ).

Ich würde jede Erklärung mit etwas Code sehr schätzen, da ich nur ein Anfänger bin.

Gracias

0 Stimmen

Ja, eine bessere Fehlerklassifizierung würde definitiv helfen.

0 Stimmen

Der Fehler, den ich bekomme, ist com.google.gwt.user.server.rpc.UnexpectedException: Die Dienstmethode 'public abstract java.lang.Boolean com.client.service.GenerateReport()' hat eine unerwartete Ausnahme ausgelöst: java.lang.NoSuchMethodError: net.sf.jasperreports.engine.fonts.SimpleFontFamily.setExportFonts(Ljava/util/Map);

0 Stimmen

Haben Sie Ihre Antwort erhalten? Ich habe das gleiche Problem? Dankeschön

-1voto

Sripathi Krishnan Punkte 30024

Ohne die Hilfe von Fehlermeldungen würde ich sagen, dass Sie Google App Engine in den Einstellungen Ihres Eclipse-Projekts aktiviert haben. GAE NICHT ermöglichen es Ihnen, in das Dateisystem zu schreiben oder Aufrufe an eine Datenbank zu machen.

Versuchen Sie, GAE zu deaktivieren, und alles sollte gut funktionieren.

0 Stimmen

@Maksim - Das tut er nicht absichtlich GAE verwenden. Das GWT Eclipse-Plugin standardmäßig hat GAE aktiviert. Viele, viele Leute haben es standardmäßig aktiviert und bemerken es erst, wenn sie auf eine Ausnahme stoßen, die sich nicht allzu sehr von der oben eingefügten unterscheidet.

0 Stimmen

Wie kann man GAE in Netbeans deaktivieren?

0 Stimmen

Netbeans hat kein GWT-Plugin, wenn Sie also nicht GAE heruntergeladen und die Jars eingebunden haben, glaube ich nicht, dass GAE das Problem ist. Da Sie NoSuchMethodError erhalten, ist es möglich, dass Sie widersprüchliche Jars in Ihrem Klassenpfad haben. Ich vermute, dass die beiden Jars unterschiedliche Versionen von net.sf.jasperreports.engine.fonts.SimpleFontFamily .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X