在不同的机器上使用JasperReports API运行代码的问题

时间:2012-08-15 13:19:54

标签: java jasper-reports

我创建了一个Java项目,它将使用 JasperReports API 。我已经在 NetBeans (同一台机器)内外测试了它,它运行正常。但是当我尝试在另一台机器上运行时,报告不会加载。

我的代码是:

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

1 个答案:

答案 0 :(得分:0)

以下是一些建议/事项:

  • 防火墙后面的数据库的端口转发
  • 如果数据库的连接端口已更改,请指定端口
  • 确保'reports / finalreport.jasper'存在
  • 包装(由于项目移动)
  • 确保所有.jar的/ JasperReport API文件都在那里
  • 此项目调用的所有其他文件都在那里
  • 网络问题/找不到主机名:192.168.10.11

编辑:

错误来自无法找到'npa logo.jpg'。确保它存在于正确的路径上。我注意到你在'C:\ Users \ mwaluda'上寻找它,你在C:\ Users \ Aboud上运行JaspterReports。如果这是一台不同的机器,该路径仍然有效吗?