我是Jasper报表的新手,我有一个带有简单脚本的报表,该脚本仅返回一个字符串。当使用Jasper studio 6.5.0预览时,我可以看到结果,但是当我尝试在本地jasper服务器上部署相同的报告时,会引发错误:
Caused by: java.lang.ClassCastException: <class> cannot be cast to net.sf.jasperreports.engine.JRAbstractScriptlet
at net.sf.jasperreports.engine.scriptlets.DefaultScriptletFactory.getScriptlet(DefaultScriptletFactory.java:109)
... 178 more]]
我在Glassfish 4.1.1上运行服务器,在lib文件夹中包含了scriplet jar文件,并根据https://community.jaspersoft.com/wiki/classcast-exception-when-running-report-containing-scriptlet更改了scriplet中的导入
以下是我的测试摘要:
import net.sf.jasperreports.engine.*;
public class DemoScriplet extends JRDefaultScriptlet{
public String getHello() throws JRScriptletException{
return "This is from a scriplet!";
}
有人遇到过此错误吗?
最佳答案
我找到了这个问题的替代方案。我没有将scriplet添加到lib中,而是将其添加为报告资源。另外,我找到了一个视频供参考。
https://www.youtube.com/watch?v=t9Hv6DrwrhQ
希望这对某人有帮助。