日期:2014-05-18  浏览次数:20818 次

ireport客户端打印问题
Exception in thread "thread applet-net.sf.jasperreports.applets.PrinterApplet.class-5" java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.extensions.ExtensionsEnvironment
at net.sf.jasperreports.repo.RepositoryUtil.getRepositoryServices(RepositoryUtil.java:63)
at net.sf.jasperreports.repo.RepositoryUtil.revertRepositoryContext(RepositoryUtil.java:109)
at net.sf.jasperreports.engine.JRAbstractExporter.resetExportContext(JRAbstractExporter.java:797)
at net.sf.jasperreports.engine.export.JRGraphics2DExporter.exportReport(JRGraphics2DExporter.java:175)
at net.sf.jasperreports.engine.print.JRPrinterAWT.print(JRPrinterAWT.java:227)
at sun.print.RasterPrinterJob.printPage(Unknown Source)
at sun.print.RasterPrinterJob.print(Unknown Source)
at sun.print.RasterPrinterJob.print(Unknown Source)
at net.sf.jasperreports.engine.print.JRPrinterAWT.printPages(JRPrinterAWT.java:183)
at net.sf.jasperreports.engine.print.JRPrinterAWT.printPages(JRPrinterAWT.java:84)
at net.sf.jasperreports.engine.JasperPrintManager.printPages(JasperPrintManager.java:197)
at net.sf.jasperreports.engine.JasperPrintManager.printReport(JasperPrintManager.java:88)
at net.sf.jasperreports.applets.PrinterApplet.start(PrinterApplet.java:121)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java控制台报错如上:

后台代码


Connection conn = null;
//加载驱动
Properties prop = new Properties();
InputStream inStream = PrintUtil.class.getClassLoader().getResourceAsStream("application.properties");//new FileInputStream("application.properties");
prop.load(inStream);
Class.forName(prop.getProperty("jdbc.driver"));
conn = DriverManager.getConnection(prop.getProperty("jdbc.url"),prop.getProperty("jdbc.username"),prop.getProperty("jdbc.password"));
prop.clear();
inStream.close();
String path = request.getSession().getServletContext().getRealPath("/ireports/"+"deliverynote.jasper");
JasperPrint jasperPrint=JasperFillManager.fillReport(path,parameters,conn);//填充报表数据生成JasperPrint对象 
HttpServletResponse response = Struts2Utils.getResponse();
System.out.println("----------------------------------000000000000000");
 response.setContentType("application/octet-stream"); 
         ServletOutputStream ouputStream = (ServletOutputStream) response.getOutputStream(); 
         ObjectOutputStream oos = new ObjectOutputStream(ouputStream); 
         oos.writeObject(jasperPrint);//将JasperPrint对象写入对象输出流中
         System.out.println("-----------44------");
         oos.flush(); 
         oos.close(); 

前台代码 

      document.writeln('<APPLET CODE="net.sf.jasperreports.applets.PrinterApplet.class" NAME="printerApplet"'+
     'CODEBASE="./" ARCHIVE="${ctx}/myeditor/applets/repor