2014-01-29 97 views
0

我已經使用iReport 5.1.0進行了報告,並部署在Tomcat服務器上,它工作得很好。但是當在生產服務器(Glassfish 3.1)中部署時,報告從不顯示。 玻璃魚日誌是空的,所以沒有發現錯誤。Glassfish上的報告失敗

當我在蝕(在Glassfish的調試模式)中運行時,執行似乎

JasperViewer jasperViewer = new JasperViewer(re, false, null); 

線跳。

此消息的旁邊是我一直在Tomcat中使用和使用的代碼。

P.D.原諒我的英語我是一個西班牙語母語人士。

代碼:

public boolean mostrarReporte(String template, Map parametros) { 
     JasperReport report = null; 
     JasperPrint re = null; 
     Connection conn = conexion(); 
     boolean success = true; 

     try { 
      String in = FacesUtils.getExternalContext().getRealPath(
        "/reportTemplates/" + template); 
      report = (JasperReport) JRLoader.loadObject(in); 

      re = JasperFillManager.fillReport(report, parametros, conn); 
      JasperViewer jasperViewer = new JasperViewer(re, false, null); 
      // Mostrar el reporte 
      jasperViewer.setVisible(true); 
      jasperViewer.setDefaultCloseOperation(0); 
      parametros.clear(); 

     } catch (JRException e) { 
      success = false; 
      e.printStackTrace(); 
     } finally { 
      try { 
       conn.close(); 
      } catch (Exception e) { 
      } 
     } 
     return success; 
    } 
+0

可能是依賴衝突。檢查此問題: http://stackoverflow.com/questions/4587328/jasperreports-compilereport – Andres

+0

@ chalo1970它是* Java * applet的代碼嗎? –

+0

@AlexK,沒有its'nt,是一個web應用程序的代碼。 – chalo1970

回答

0

請確認您有您的生產服務器上的所有碧玉庫:他們應該是下的GlassFish /域/域1/lib/ext目錄。如果罐子不存在(或其中的一些 - 如字體或其他非強制性lib),則可能會遇到您描述的行爲。還要確保生產機器上的數據庫不是空的。如果沒有要顯示的數據,jasper會顯示一個空白頁面。

+0

數據庫不是空的,實際上我已經用Glassfish測試了開發計算機的代碼,行爲與生產服務器相同。 jasperreports中包含的所有庫都位於WEB-INF/lib文件夾中。任何想法? – chalo1970