-1

JasperReportsAPIを使用するJavaプロジェクトを作成しました。これを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();
    }
}
4

1 に答える 1

0

ここにいくつかの提案/検討事項があります:

  • ファイアウォールの背後にあるデータベースのポート転送
  • データベースの接続ポートが変更された場合のポートを指定します
  • 「reports/finalreport.jasper」が存在することを確認してください
  • 梱包(プロジェクトが動き回るため)
  • すべての .jar の / JasperReport API ファイルがそこにあることを確認します
  • このプロジェクトが呼び出す他のすべてのファイルはそこにあります
  • ネットワークの問題 / ホスト名が見つからない: 192.168.10.11

編集:

このエラーは、「npa logo.jpg」が見つからないために発生します。正しいパスに存在することを確認してください。「C:\Users\mwaluda」で探していて、C:\Users\Aboud で JaspterReports を実行していることに気付きました。これが別のマシンである場合、そのパスは引き続き有効ですか?

于 2012-08-15T15:26:15.253 に答える