ireport客户端打印问题

伍文 2013-03-26 11:44:19
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/reportPrint.jar,${ctx}/myeditor/applets/commons-logging-1.1.1.jar" WIDTH="0" HEIGHT="0">'+
'<PARAM NAME="type" VALUE="application/x-java-applet;version=1.6.0">'+
'<PARAM NAME="scriptable" VALUE="false">'+
'<PARAM NAME="REPORT_URL" value="${ctx}/background/order!printdn.action?orderId='+oid+'">'+
'</APPLET>');



大家帮我分析一下三天了,研究的头都大了。
...全文
340 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
伍文 2013-07-02
  • 打赏
  • 举报
回复
引用 18 楼 accp_guoan 的回复:
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment). log4j:WARN Please initialize the log4j system properly. 我这是这个错 能给看看吗
你这个应该是日志包的问题吧
码农酷大叔 2013-06-30
  • 打赏
  • 举报
回复
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment). log4j:WARN Please initialize the log4j system properly. 我这是这个错 能给看看吗
  • 打赏
  • 举报
回复
是jasperreports-4.0.1.jar这个吗?版本是几?
伍文 2013-03-26
  • 打赏
  • 举报
回复
引用 3 楼 fengspg 的回复:
java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.extensions.ExtensionsEnvironment
我也看到了这个类不能初始化,看了一个源码,是私有的构造方法。可这是jar包里面的。
Intboy 2013-03-26
  • 打赏
  • 举报
回复
java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.extensions.ExtensionsEnvironment
七神之光 2013-03-26
  • 打赏
  • 举报
回复
伍文 2013-03-26
  • 打赏
  • 举报
回复
来个从说说想法也行啊!
伍文 2013-03-26
  • 打赏
  • 举报
回复
引用 16 楼 fangmingshijie 的回复:
那个jar冲突。
还要commons-digester-2.1.jar包,我在一个文章里看到了,可当时加入了,少了commons-collections-3.2.1.jar包,所以以为不是这个问题。不过报的错,确实不好找问题。
  • 打赏
  • 举报
回复
那个jar冲突。
伍文 2013-03-26
  • 打赏
  • 举报
回复
终于解决了果然是jar包问题。 在这里谢谢fangmingshijie。
  • 打赏
  • 举报
回复
应该是jar包的问题,具体是那些冲突,自己排查下
伍文 2013-03-26
  • 打赏
  • 举报
回复
引用 12 楼 fangmingshijie 的回复:
去掉一个jasperreports-4.5.1.jar看下
我去掉jasperreports-4.5.1.jar,加上jasperreports-applet-4.5.1.jar会报: net.sf.jasperreports.engine.print.JRPrinterAWT$1.calss找不到。
  • 打赏
  • 举报
回复
去掉一个jasperreports-4.5.1.jar看下
伍文 2013-03-26
  • 打赏
  • 举报
回复
引用 10 楼 fangmingshijie 的回复:
用的什么浏览器?
IE8,做了整三天了。你有没有例子,让我参考一下。
  • 打赏
  • 举报
回复
用的什么浏览器?
伍文 2013-03-26
  • 打赏
  • 举报
回复
要说明的是,我在后台打印是能用的,就是放到applet里不行。
伍文 2013-03-26
  • 打赏
  • 举报
回复
引用 7 楼 fangmingshijie 的回复:
你的jar都那些,好像是冲突造成找不到jar的问题。
jasperreports-4.5.1.jar、commons-collections-3.2.1.jar、commons-logging-1.1.1.jar这几个是applets里放的,供applet使用。 lib里面放的是jasperreports-4.5.1.jar、jasperreports-applet-4.5.1.jar、jasperreports-fonts-4.5.1.jar、jasperreports-javaflow-4.5.1.jar相关的。
  • 打赏
  • 举报
回复
你的jar都那些,好像是冲突造成找不到jar的问题。
伍文 2013-03-26
  • 打赏
  • 举报
回复
引用 5 楼 fangmingshijie 的回复:
是jasperreports-4.0.1.jar这个吗?版本是几?
版本是jasperreports-4.5.1.jar

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧