【发布时间】:2013-05-15 15:55:26
【问题描述】:
我是 Rails 新手,但不是 Java。我一直在尝试在https://github.com/fortesinformatica/jasper-rails 测试jasper-rails 项目,该文档使它看起来很简单,但我发现它不那么简单。并且开发者没有回复我的问题,所以我在这里问。
我使用 iReport 创建了我的报告(jasper-rails 暗示有效)并将 .jrxml 文件放入 app/views/jasper/index.jrxml。当我加载 localhost:3000/jasper.pdf 时,我收到此错误:
RuntimeError (net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException;
lineNumber: 8; columnNumber: 16; Error at line 8 char 16: No query executer factory
registered for the 'xpath2' language.): app/controllers/jasper_controller.rb:7:in `index'
所以它似乎不知道如何处理xpath2。不幸的是,我在 iReport 版本中的唯一选择是xpath2。如果我在 Rails 输出中向上滚动,我会看到:
java.lang.reflect.InvocationTargetException
[....]
Caused by: net.sf.jasperreports.engine.JRRuntimeException: No query executer factory registered for the 'xpath2' language.
at net.sf.jasperreports.engine.util.JRQueryExecuterUtils.getExecuterFactory(JRQueryExecuterUtils.java:114)
at net.sf.jasperreports.engine.design.JRDesignDataset.queryLanguageChanged(JRDesignDataset.java:1152)
at net.sf.jasperreports.engine.design.JRDesignDataset.setQuery(JRDesignDataset.java:630)
at net.sf.jasperreports.engine.design.JasperDesign.setQuery(JasperDesign.java:791)
所以 JasperReports 似乎需要为 xpath2 配置一些东西。
我已将 jasper-rails 使用的罐子替换为 ireport/modules/ext 中的罐子,但我得到了相同的响应。所以,不知何故,我必须告诉jasper-rails 我的xpath2。但是怎么做?或者旧版本的 iReport 会更好吗?有没有人解决这个问题?
【问题讨论】:
标签: ruby-on-rails jasper-reports ireport