打電話報告我使用JasperReports的4.7.1插件爲的NetBeans 7.2產生從MySQL數據庫報告 而我從IDE運行該應用程序是沒有問題的發現接受這個警告:JasperReports的:從罐子
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.engine.xml.JRXmlDigesterFactory).
log4j:WARN Please initialize the log4j system properly.
但報告生成並正確查看。
的問題是當我清理和構建應用程序,然後從罐中響起這文件不生成報表並沒有給我只是沒有看到報告任何異常和其他每一件事情是正常的嗎?
這是我用在查看報告JasperViewer功能:
public void printInvoice(int invid) throws IOException {
try {
String sql = "SELECT\n" +
" ordersdetails.`ITEMNAME` AS ordersdetails_ITEMNAME,\n" +
" ordersdetails.`AMOUNT` AS ordersdetails_AMOUNT,\n" +
" ordersdetails.`PRICE` AS ordersdetails_PRICE,\n" +
" invoices.`INVOICEID` AS invoices_INVOICEID,\n" +
" invoices.`CUSTOMER` AS invoices_CUSTOMER,\n" +
" invoices.`THEDATE` AS invoices_THEDATE,\n" +
" invoices.`COST` AS invoices_COST\n" +
"FROM\n" +
" `invoices` invoices RIGHT OUTER JOIN `ordersdetails` ordersdetails ON invoices.`INVOICEID` = ordersdetails.`INVOICE` where invoices.invoiceid=" + invid;
InputStream in = this.getClass().getResourceAsStream("/reports/invoice.jrxml");
JasperDesign jd = JRXmlLoader.load(in);
JRDesignQuery q = new JRDesignQuery();
q.setText(sql);
jd.setQuery(q);
JasperReport jasp_rep = JasperCompileManager.compileReport(jd);
JasperPrint jasp_print = JasperFillManager.fillReport(jasp_rep, null, mc.getConnection());
JasperViewer.viewReport(jasp_print, false);
} catch (JRException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
System.out.println(e);
}
}
你應該遵循這個問題:http://stackoverflow.com/questions/8943661/please-initialize-the-log4j-system-properly-warning –
警告不是問題問題是從這個方法到結束JRXmlLoader使用已編譯的jar – user3043180
當.load()沒有什麼工作是,該警告僅僅是警告...但在生產,這意味着,沒有什麼實際被記錄下來。所以這就是爲什麼你不會有任何錯誤的好理由。 –