2012-08-15 27 views
-1

我創建了一個Java項目,它將使用JasperReports API。我已經在內部和外部測試了這個NetBeans(同一臺機器),它工作正常。但是當我嘗試在另一臺機器上運行它時,報告不會加載。在不同機器上使用JasperReports API運行代碼問題

我的代碼是:

package reportmonitory; 

import java.sql.*; 
import net.sf.jasperreports.engine.JasperCompileManager; 
import net.sf.jasperreports.engine.JasperFillManager; 
import net.sf.jasperreports.engine.JasperPrint; 
import net.sf.jasperreports.engine.JasperReport; 
import net.sf.jasperreports.swing.JRViewer; 
import javax.swing.*; 

public class monthlyreport extends JFrame { 

    Connection con; 
    Statement stmt; 
    ResultSet rs; 

    void showReport() { 
     try { 
      String host = "jdbc:mysql://192.168.10.11/rmcdb"; 
      String uName = "root"; 
      String uPass = ""; 
      Class.forName("com.mysql.jdbc.Driver").newInstance(); 
      con = DriverManager.getConnection(host, uName, uPass); 
      stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); 
      String reportName = "reports/finalreport.jasper"; 
      java.io.InputStream is = this.getClass().getClassLoader().getResourceAsStream(reportName); 
      JasperPrint print = JasperFillManager.fillReport(is, null, con); 
      JRViewer viewer = new JRViewer(print); 
      viewer.setOpaque(true); 
      viewer.setVisible(true); 
      this.add(viewer); 
      this.setSize(1000, 1000); 
      this.setVisible(true); 
      this.setDefaultCloseOperation(HIDE_ON_CLOSE); 
     } catch (Exception ex) { 
      System.out.println("CAUSE: " + ex.getCause()); 
      System.out.println("MESSAGE" + ex.getMessage()); 
      System.out.println("LOCAL MESSAGE" + ex.getLocalizedMessage()); 
      ex.printStackTrace(); 
     } 
    } 

    public static void main(String args[]) { 
     new monthlyreport().showReport(); 
    } 
} 
+2

你有什麼異常嗎?並在哪一行代碼被拋出? – Pr0gr4mm3r 2012-08-15 13:24:55

+0

根據顯示的異常(你沒有包含在你的問題中),它可能是缺少mysql驅動程序,另一臺機器中的網絡問題導致它無法連接到數據庫,數據庫中的權限從其他機器,...)。 – Alfabravo 2012-08-15 14:28:16

+0

感謝我的jar文件的所有其他功能在其他機器上工作,例如,將數據發佈到數據庫並檢索它。它只是ireport不工作。當jar文件在另一臺機器上運行時,我將無法運行 – chalasa 2012-08-16 05:12:19

回答

0

這裏有一些建議/東西尋找到:

  • 端口轉發的防火牆後面的數據庫
  • 指定數據庫的連接端口已經案件端口已更改
  • 確保'reports/finalreport.jasper'存在
  • Packagi NG(由於項目走動)
  • 確保所有的.jar的/ JasperReport的API文件有
  • 所有其他文件這個項目通話是有
  • 網絡問題/找不到主機名:192.168.10.11

編輯:

錯誤來自無法找到'npa logo.jpg'。確保它存在於正確的路徑上。我注意到你正在'C:\ Users \ mwaluda'上尋找它,並且你正在C:\ Users \ Aboud上運行JaspterReports。如果這是一臺不同的機器,該路徑是否仍然有效?

+0

我已經檢查了ireports所有這一切,正如我所說的,我的程序的所有其他功能正在工作,例如,將數據發佈到數據庫並檢索它,但是當我嘗試查看我的ireports時,沒有任何文件從您的錯誤運行 – chalasa 2012-08-16 05:15:51

+0

@chalasa,它看起來像缺少這個文件 - C:\ Users \ mwaluda \ Documents \ NetBeansProjects \ Repo rtMonitory \ src \ reportmonitory \ images \ npa logo.jpg – Chandrew 2012-08-16 14:20:14

相關問題