class not found: org/apache/xpath/CachedXPathAPI 解决方法

转自:http://blog.sina.com.cn/s/blog_454fbf740100qhxn.html

在用jasperreport,读取xml数据源时,如果出现这个错误问题,说明缺少了org.apache.xpath.CachedXPathAPI文件。

有人问:为什么在ireport用xml file datasource创建数据源时,没有出现这个错误,因为装ireport时,自带了xalan.jar,这个jar包里就有org.apache.xpath.CachedXPathAPI文件。

 

解决方法,在ireport安装目录下,搜索xalan.jar文件,将这个文件考到项目中去,重新编译下,问题解决。

 

 

顺便发个小例子:

JasperReport + ireport 例子(数据源为数XML文件)

 

 

一.    XML 文件

           

                        CHRIST LEE

                        TEST

           

 

 

二.    JRXML文件

     

     

     

     

     

     

      [/UserInfoData/UserInfo/FULLNAME]]>

     

     

      [/UserInfoData/UserInfo/PASSWORD]]>

     

     

                 

                 

                             

                       

                 

                 

                                                                                                                 

                                         

     

                 

 

另一个版本ireport3.7.3中的jrxml部分代码:


  /UserInfoData/UserInfo/]]>
 

 
  FULLNAME]]>
 

 
  PASSWORD]]>
 

 

你可以在IREPORT中用定义好的XML文件生成JRXML文件。

 

 

三.    JAVA文件

public class Demo3 {

            public static void main(String[] args) {

                        try {

                                    File f = new File("report\\test.xml");

                                    JRXmlDataSource xmlDataSource = new JRXmlDataSource(new File(

                                                            "report\\test.xml"));

                                    File sourceFile = new File("report\\test.jrxml");

                                    JasperReport jasperReport = JasperCompileManager

                                                            .compileReport(sourceFile.getPath());

                                    JasperPrint jasperPrint = JasperFillManager.fillReport(

                                                            jasperReport, new HashMap(), xmlDataSource);

                                    JasperExportManager.exportReportToPdfFile(jasperPrint,

                                                            "report\\test.pdf");

                        } catch (Exception e) {

                                    e.printStackTrace();

                        }

            }

}


用xml作为数据源相对比较简单,注意红色部分

你可能感兴趣的:(jasperReport)