Java jasperreports in struts2
我曾尝试通过向jasper传递整数参数来使用Struts2运行jasper。但我得到了一个错误Java jasperreports in struts2,java,jasper-reports,Java,Jasper Reports,我曾尝试通过向jasper传递整数参数来使用Struts2运行jasper。但我得到了一个错误 cannot assign instance of net.sf.jasperreports.engine.base.JRBaseTextField to field net.sf.jasperreports.engine.base.JRBaseParagraph.paragraphContainer of type net.sf.jasperreports.engine.JRParagraphCon
cannot assign instance of net.sf.jasperreports.engine.base.JRBaseTextField to field
net.sf.jasperreports.engine.base.JRBaseParagraph.paragraphContainer of type
net.sf.jasperreports.engine.JRParagraphContainer in instance of
net.sf.jasperreports.engine.base.JRBaseParagraph
我使用的代码是
parameterMap.put(parametername, param);
connection = dbc.getConnection();
JasperPrint jasperPrint = JasperFillManager.fillReport("jasper.jasper", parameterMap, connection);
JasperExportManager.exportReportToPdfFile(jasperPrint,"jasper.pdf");
请任何人帮我解决这个问题这就是众所周知的问题 您可能正在使用的是commons digester 2.1。您应该使用
1.7
版本的commons digester
库
更新:
我的工作示例(独立maven java应用程序):
publicstaticvoidtestreport(){
连接=空;
试一试{
Class.forName(“org.hsqldb.jdbcDriver”);
String url=“jdbc:hsqldb:file:d:\\path\u to\u db\db\u file\u name”;
connection=DriverManager.getConnection(url,“sa”和“”);
String reportSource=“d:\\path\u to\u jrxml\\simple.jrxml”;
Map params=新的HashMap();
JasperReport-JasperReport=JasperCompileManager.compileReport(reportSource);
JasperPrint JasperPrint=JasperFillManager.fillReport(jasperReport,参数,连接);
JasperExportManager.exportReportToPdfFile(jasperPrint,“d:\\output\u path\\out.pdf”);
}捕获(例外e){
e、 printStackTrace();
System.out.println(e.getMessage());
}最后{
试一试{
if(连接!=null){
connection.close();
}
}catch(SQLException-ex){
System.out.println(例如getMessage());
}
}
}
pom.xml中的代码段:
<dependencies>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>4.1.2</version>
<exclusions>
<exclusion>
<groupId>tomcat</groupId>
<artifactId>jasper-compiler-jdt</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>groovy</groupId>
<artifactId>groovy-all-1.0-jsr</artifactId>
<version>05</version>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.2.4</version>
<scope>runtime</scope>
</dependency>
</dependencies>
net.sf.jasperreports
jasperreports
4.1.2
雄猫
jasper编译器jdt
棒极了
groovy-all-1.0-jsr
05
运行时
薛西斯
干细胞移植
org.hsqldb
hsqldb
2.2.4
运行时
您可以尝试使用我的示例应用程序来构建报表我认为您的问题与类路径有关。您是否在iReport的帮助下检查了模板(通过预览功能)?是的,我已经检查并能够生成正确的预览。我一直在使用commons digester 1.7 jar。但我也遇到了同样的错误。有谁能帮我使用java应用程序将jasper report导出为PDF吗?您可以发布类路径中的所有库吗?我添加了groovy库。现在我可以跑步了。但是在运行报告second tim之后,我得到了一个严重的错误:第1行第1列的Parse Fatal error:prolog中不允许内容。org.xml.sax.SAXParseException:prolog中不允许包含内容。在com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(未知源)在com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(未知源)在com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(未知源)你使用PostgreSQL吗?这是完整的堆栈跟踪吗?
<dependencies>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>4.1.2</version>
<exclusions>
<exclusion>
<groupId>tomcat</groupId>
<artifactId>jasper-compiler-jdt</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>groovy</groupId>
<artifactId>groovy-all-1.0-jsr</artifactId>
<version>05</version>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.2.4</version>
<scope>runtime</scope>
</dependency>
</dependencies>