ireport 4.5.1 通过java生成pdf的问题
public static void main(String[] args) {
DbUtilsTemplate db = new DbUtilsTemplate();
JasperPrint print = null;
try {
InputStream is = new FileInputStream("F:/test2.jasper");
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(is);
Map map = new HashMap();
List<BookBean> list = new ArrayList<BookBean>();
list.add(new BookBean());
print = JasperFillManager.fillReport(jasperReport, map,
new JRBeanCollectionDataSource(list));
Date now = new Date();
String fileName = now.getTime() + "";
String filePath = "F:/iReport/" + fileName + ".pdf";
// JasperViewer.viewReport(print, false);
JasperExportManager.exportReportToPdfFile(print, filePath);
} catch (Exception e) {
e.printStackTrace();
}
}
我的test2.jasper没有定义任何变量属性。直接是一个空的模板。运行之后报错如下:
应该不存在版本问题。
Exception in thread "main" java.lang.NoSuchFieldError: APPDEFAULT
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:496)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:388)
at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:122)
at com.iphone.servlet.Test.main(Test.java:58)
--------------------编程问答-------------------- BookBean 没有APPDEFAULT 属性 --------------------编程问答-------------------- 我也遇到这个错了,LZ是怎么解决的啊...都搞了好几天了... --------------------编程问答-------------------- 我也找了很久,后面发现是jar包不对应,你要看看你引用的jar包用反编译软件看看是不是包含该字段,否则找到对应版本的jar包替换掉就可以了 --------------------编程问答-------------------- JasperReport需要使用的iText.jar版本升级到iText-2.1.7.jar就可以了 --------------------编程问答-------------------- 试一下 --------------------编程问答--------------------
感谢LS,就是这个问题已解决 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 非常感谢!的确是这个问题
补充:Java , Java EE