我是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

希望这对某人有帮助。

09-26 20:37