我是 Rails 新手,但不是 Java 新手。我一直在尝试在https://github.com/fortesinformatica/jasper-railsjasper-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 会更好吗?有没有人让这个工作?