Jasper reports 修改存储过程后,报表停止在JasperReportsServer上工作

Jasper reports 修改存储过程后,报表停止在JasperReportsServer上工作,jasper-reports,jasperserver,Jasper Reports,Jasperserver,我们有一个使用iReport designer和JasperReports Serer完美运行的报告 我对底层MySQL存储过程做了一些小的修改,并相应地调整了报表结构,现在我可以从设计器界面运行报表,但根本不能从服务器运行报表 我收到如下错误: Error Message java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date 据我所知,我们在报告中使用的某个日期存在问题,但据我所知,所

我们有一个使用iReport designer和JasperReports Serer完美运行的报告

我对底层MySQL存储过程做了一些小的修改,并相应地调整了报表结构,现在我可以从设计器界面运行报表,但根本不能从服务器运行报表

我收到如下错误:

Error Message

java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date
据我所知,我们在报告中使用的某个日期存在问题,但据我所知,所有日期信息均未更改

首先,我将附加报告和存储过程的顶部:

分隔符$$
CREATE DEFINER=`root`@`localhost`过程`sp_fasb`(开始日期varchar(10),结束日期varchar(10),loc varchar(45))
开始
宣布星期五结束日期varchar(10);
在_str varchar(255)中声明;
如果dayofweek(end_date)=7,则
设置星期五结束日期=日期添加(结束日期,间隔6天);
其他的
设置星期五结束日期=日期添加(结束日期,间隔(6-dayofweek(结束日期))天);
如果结束;
如果dayofweek(end_date)=7,则
设置结束日期=日期添加(结束日期,间隔-1天);
如果结束;
如果dayofweek(end_date)=1,则
设置结束日期=日期添加(结束日期,间隔-2天);
如果结束;

感谢您的建议。

据我所知,所有的
日期
数据类型都是
varchar(10)

由于您使用的是日期添加函数,因此不能将“开始日期”作为字符串

当您在MYSQL上尝试此功能时

SELECT date_add(curdate(), interval 6 day);
Result:2013-05-06
但是当你尝试的时候

SELECT date_add('2013-04-30', interval 6 day);
您没有得到任何结果或得到“BLOB”
这意味着函数中需要一个日期数据类型的变量

同样在报告中,您可能将输入参数定义为java.util.Date。 您可能需要更改该值,并查看这是否是输入参数的问题。 这也可能是一个问题


希望这有帮助

谢谢,我理解这是如何导致问题的,并做出了建议的更改。报告在服务器上仍然失败,以下是我发现的:在上周的某个时候,我一定对文本字段进行了更改,试图修复我之前损坏的内容。当这无法修复报告时,我从服务器上删除了报告并尝试重新上载它…这就是真正问题的开始,因为我无法重新链接输入控件。一旦我应用了您的建议并重新链接了输入控件,它就可以完美地工作…再次感谢您…没问题。如果我的答案帮助您解决查询,您可能会希望接受答案,因为它可能会在将来帮助其他有类似问题的人。