海鸥航迹

学习之笔记,好文之收集。

整理的JasperReport资料(转载)

整理的JasperReport资料(转载)

java开发者 网友 溪涧
多谢了!

最近工作中用到报表,而我在学习JasperReport的过程中遇到了很多问题(主要是国内的资料太少了),网上很少找得到,在此我就把我找到的一些资料和大家共享,希望能对大家有所帮助。
1、JasperReport和iReport的资源,最新版本可以到下面官方网站得到

iReport官方网站:
http://ireport.sourceforge.net
     JasperReport官方网站:
http://jasperreports.sourceforge.net

2、安装
   1)、JDK的安装,并配置JAVA_HOME
比如我的JAVA_HOME路径如下:
JAVA_HOME  D:\Program Files\j2sdk1.4.2_03

2)、由于中文的问题,所以还需要下载:itext-1.02b.jar和iTextAsian.jar包
下载地址:http://itext.sourceforge.net/downloads/iTextAsian.jar
并在CLASSPATH中设置
      例如我的CLASSPATH如下:
CLASSPATH
E:\Program Files\Apache Group\Tomcat4.1\webapps\testreport\WEB-INF\lib\itext-1.02b.jar;E:\Program

Files\Apache Group\Tomcat 4.1\webapps\testreport\WEB-INF\lib\iTextAsian.jar;E:\Program Files\Apache

Group\Tomcat 4.1\webapps\testreport\WEB-INF\lib;D:\tools\iReport0.2.3\lib

   3)、iReport的安装iReport只要解压就OK,如果没有安装Ant,可以直接在iReport下的noAnt目录下,
运行startup.bat就可以了,这样iReport就可以启动了

4)、JasperReport
Jasperreport不需要任何配置,你只需将下载以后的jar包放到classpath下即可
5)、数据库的JDBC驱动包
加入到CLASSPATH中

3、详细资源
iReport官方提供了一些关于iReport视频,对于初学者很有帮助:
   地址:http://ireport.sourceforge.net/docs.html

JasperReport官方提供的使用指南
地址:http://jasperreports.sourceforge.net/tutorial/index.html

JasperReport提供的一些例子:
地址:http://jasperreports.sourceforge.net/samples/index.html

4、常见问题
1)、iReport中提示框输入中文是不能正常显示,请将iReport下lib中的这个包删除tinylaf.jar
   2)、在iReport中运行报表时如果出现乱码问题,请检查itext-1.02b.jar和iTextAsian.jar这两个包是否加到CLASSPATH
3)、在jsp或servlet高度报表时出现乱码或不显示,请检查你在报表设计过程中所设置的字体及其编码
比如:pdfname、pdfencoding
5、下面是两个调试例子
  Servlet:
import javax.servlet.*;
import javax.servlet.http.*;
import dori.jasper.engine.*;
import java.io.*;
import java.util.*;
import java.sql.*;

/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class TestReport extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Connection conn = null;

try {

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn =
DriverManager.getConnection(


"jdbc:microsoft:sqlserver://192.168.0.10:1433;DatabaseName=am;user=sa;password=sa");

ServletContext servletContext =this.getServletContext();
File reportFile = new File(servletContext.getRealPath("test/iteminfo.jasper"));
Map parameters = new HashMap();
Integer i=new Integer(8);
parameters.put("pjId", i);
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
} catch (JRException jre) {
System.out.println("JRException:" + jre.getMessage());
} catch (Exception e) {
System.out.println("Exception:" + e.getMessage());
}

}

public void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

doGet(request, response);

}

}

JSP:
<%@ page contentType="text/html;charset=GBK" %>

posted on 2005-01-07 18:22 海天一鸥 阅读(16868) 评论(17)  编辑 收藏 网摘 所属分类: JAVA报表专题

评论

#1楼  2005-05-06 14:19 zdc [未注册用户]

非常感谢您无私的奉献   回复  引用    

#2楼  2005-08-11 18:03 良寿 [未注册用户]

我按你的整理的JasperReport资料代码做,就是出不来在ireport编译出来的PDF文件,总是报下面异常:JRException:Error loading object from file : D:\project\D3ERP2005\ServletTest\ServletTest\WebModule1\util_ireport1.jasper
请教我是哪里出问题,谢谢!   回复  引用    

#3楼  2005-09-16 10:40 nyeo [未注册用户]

不知道为什么?我的com.lowagie.*包始终加载不了,
是不是哪里出错了?   回复  引用    

#4楼  2005-09-21 23:43 唐良坤(tlkbj@163.com) [未注册用户]

俺也是碰到这个问题,怎么回事儿啊兄弟帮忙:

java.io.InvalidClassException: net.sf.jasperreports.engine.base.JRBaseReport; local class incompatible: stream classdesc serialVersionUID = 10001, local class serialVersionUID = 10000
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:463)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:85)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:161)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:124)
at com.xf.imbs.business.ExcportReport.exportToPdf(ExcportReport.java:109)
at com.xf.imbs.action.ExportAction.export(ExportAction.java:63)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)

at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:85)
... 49 more

  回复  引用    

#5楼  2005-09-21 23:44 唐良坤(tlkbj@163.com) [未注册用户]

NESTED BY :
net.sf.jasperreports.engine.JRException: Error loading object from file : d:\app\tomcat\webapps\imbs\WEB-INF\reports\acctRule.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:161)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:124)
at com.xf.imbs.business.ExcportReport.exportToPdf(ExcportReport.java:109)
at com.xf.imbs.action.ExportAction.export(ExportAction.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:480)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1420)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:502)
at com.xf.imbs.servlet.ExtendedActionServlet.doGet(ExtendedActionServlet.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:696)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at com.xf.imbs.servlet.EncodingFilter.doFilter(EncodingFilter.java:39)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:85)
... 49 more
  回复  引用    

#6楼  2005-09-26 12:05 sdfsd [未注册用户]

jsp中如何调用呢?~~~~~~~~~~~~~~~~~~~~~~   回复  引用    

#7楼  2005-09-29 14:51 xiaoyang [未注册用户]

这个错误是怎么回事?在什么地方修改?
Errors compiling .\test.jasper! it.businesslogic.ireport.ReportClassLoader@3b2558 net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Cannot cast from String to Boolean                 value = (java.lang.Boolean)(((java.lang.String)field_actionname.getValue()));                         <------------------------------------------------------------------> 2. Cannot cast from String to Boolean                 value = (java.lang.Boolean)(((java.lang.String)field_actionname.getOldValue()));                         <---------------------------------------------------------------------> 3. Cannot cast from String to Boolean                 value = (java.lang.Boolean)(((java.lang.String)field_actionname.getValue()));                         <------------------------------------------------------------------> 3 errors     at net.sf.jasperreports.engine.design.JRJdtCompiler.compileReport(JRJdtCompiler.java:178)     at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:129)     at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:127)     at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:109)     at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:461)     at java.lang.Thread.run(Thread.java:534)   回复  引用    

#8楼  2005-10-09 18:22 唐良坤 [未注册用户]

可能是版本不匹配得缘故,如果有问题得话请先编译下再导出就可以了   回复  引用    

#9楼  2005-12-06 12:12 zheng [未注册用户]

to: 整理的JasperReport资料(转载) 2005-09-16 10:40 nyeo
不知道为什么?我的com.lowagie.*包始终加载不了,
是不是哪里出错了?
com.lowagie.*--->net.sf.jasperreports.engine.*,net.sf.jasperreports.engine.util.*,net.sf.jasperreports.engine.export.*
  回复  引用    

#10楼  2006-02-15 22:05 kswdgx [未注册用户]

有点关于jasperreport的问题请教
我下载了jasperreport1.1.0的代码,其中有许多DEMO但是我却运行不起来,老是报如下错误不知是何原因,但0.68版本却可以,错误如下 :
Buildfile: H:\study\report\jasperreports-1.2.0-project\jasperreports-1.2.0\demo\samples\shapes\build.xml
compile:
[jrc] Compiling 1 report design files.
[jrc] 2006-2-15 21:42:18 org.apache.commons.digester.Digester getParser
[jrc] 严重: Digester.getParser:
[jrc] org.xml.sax.SAXNotRecognizedException: Feature: http://apache.org/xml/features/validation/dynamic
[jrc] at org.apache.crimson.parser.XMLReaderImpl.setFeature(Unknown Source)
[jrc] at org.apache.crimson.jaxp.SAXParserImpl.setFeatures(Unknown Source)
[jrc] at org.apache.crimson.jaxp.SAXParserImpl.<init>(Unknown Source)
[jrc] at org.apache.crimson.jaxp.SAXParserFactoryImpl.newSAXParserImpl(Unknown Source)
[jrc] at org.apache.crimson.jaxp.SAXParserFactoryImpl.setFeature(Unknown Source)
[jrc] at org.apache.commons.digester.parser.XercesParser.configureXerces(XercesParser.java:185)
[jrc] at org.apache.commons.digester.parser.XercesParser.newSAXParser(XercesParser.java:138)
[jrc] at org.apache.commons.digester.ParserFeatureSetterFactory.newSAXParser(ParserFeatureSetterFactory.java:71)
[jrc] at org.apache.commons.digester.Digester.getParser(Digester.java:692)
[jrc] at org.apache.commons.digester.Digester.getXMLReader(Digester.java:899)
[jrc] at org.apache.commons.digester.Digester.parse(Digester.java:1647)
[jrc] at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:238)
[jrc] at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:225)
[jrc] at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:213)
[jrc] at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:167)
[jrc] at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:151)
[jrc] at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:107)
[jrc] at net.sf.jasperreports.ant.JRAntCompileTask.compile(JRAntCompileTask.java:398)
[jrc] at net.sf.jasperreports.ant.JRAntCompileTask.execute(JRAntCompileTask.java:252)
[jrc] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[jrc] at org.apache.tools.ant.Task.perform(Task.java:364)
[jrc] at org.apache.tools.ant.Target.execute(Target.java:341)
[jrc] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[jrc] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
[jrc] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
[jrc] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
[jrc] at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
[jrc] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
[jrc] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
[jrc] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
File : H:\study\report\jasperreports-1.2.0-project\jasperreports-1.2.0\demo\samples\shapes\ShapesReport.jrxml ...

BUILD FAILED
H:\study\report\jasperreports-1.2.0-project\jasperreports-1.2.0\demo\samples\shapes\build.xml:30: java.lang.NullPointerException

Total time: 2 seconds

希望能指点一下,不胜感激,我的邮箱:kswdgx◎163.com
  回复  引用    

#11楼  2006-03-08 10:00 quque [未注册用户]

照做了可还是有乱码.怎么办   回复  引用    

#12楼  2006-04-04 18:18 terry1234567 [未注册用户]

Exception:Null 'key' argument.
报空上错,弄了半天没弄好,请问一下是怎么回事啊?   回复  引用    

#13楼  2006-05-29 11:25 guo [未注册用户]

请教大哥!!
为什么我输出的pdf格式的文件特别大啊有六七百K??   回复  引用    

#14楼  2006-11-30 13:30 黄柳鸿 [未注册用户]

这个错误是怎么回事?在什么地方修改? 希望快点恢复呀,各位师傅,谢谢!
Errors compiling .\test.jasper! it.businesslogic.ireport.ReportClassLoader@3b2558 net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: 1. Cannot cast from String to Boolean value = (java.lang.Boolean)(((java.lang.String)field_actionname.getValue())); <------------------------------------------------------------------> 2. Cannot cast from String to Boolean value = (java.lang.Boolean)(((java.lang.String)field_actionname.getOldValue())); <---------------------------------------------------------------------> 3. Cannot cast from String to Boolean value = (java.lang.Boolean)(((java.lang.String)field_actionname.getValue())); <------------------------------------------------------------------> 3 errors at net.sf.jasperreports.engine.design.JRJdtCompiler.compileReport(JRJdtCompiler.java:178) at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:129) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:127) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:109) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:461) at java.lang.Thread.run(Thread.java:534)   回复  引用    

#15楼  2007-04-13 11:31 碧海蓝天 [未注册用户]

我也遇到了这样的问题:
net.sf.jasperreports.engine.JRException: Class not found when loading object from file : C:\bea\user_projects\domains\mydomain\applications\selfec\report\printcj.jasper
事实上这个目录下有这个printcj.jasper文件。
应该怎么解决这个问题啊,请大侠们帮帮忙,急!!!!   回复  引用    

#16楼 [楼主] 2007-04-15 09:48 海天一鸥      

最近很多朋友询问有关JasperReport的技术,有关这类技术的讨论,请到群
QQ:25935569
提问讨论。   回复  引用  查看    

#17楼  2007-06-25 17:02 42651624 [未注册用户]

Class not found when loading object from file
这个问题 怎么解决!好多朋友都提出来了,为什么没人帮一下忙呀!   回复  引用    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索


China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!

相关文章:

相关链接: