Jasper reports 为什么在JasperServer 6.0.1上出现调度程序无效日期错误?
我正在将jasperserver从3.7迁移到jasperserver 6.0.1,现在在新的jasperserver中,我希望日期格式为dd/mm/yyyy,但默认情况下,日期格式为yyyy-mm-dd。 为此,我在中更改了jasperserver_config.properties文件 apache-tomcat-7.0.65\webapps\jasperserver\WEB-INF\bundles\jasperserver\u config.properties 我把它改成了Jasper reports 为什么在JasperServer 6.0.1上出现调度程序无效日期错误?,jasper-reports,jasperserver,Jasper Reports,Jasperserver,我正在将jasperserver从3.7迁移到jasperserver 6.0.1,现在在新的jasperserver中,我希望日期格式为dd/mm/yyyy,但默认情况下,日期格式为yyyy-mm-dd。 为此,我在中更改了jasperserver_config.properties文件 apache-tomcat-7.0.65\webapps\jasperserver\WEB-INF\bundles\jasperserver\u config.properties 我把它改成了 #
# Used for parsing and formatting dates by server
date.format=dd/MM/yyyy
datetime.format=dd/MM/yyyy HH:mm:ss
time.format=HH:mm:ss
# Used for parsing and formatting dates by calendar component (UI).
# Pattern for date should match appropriated pattern from server properties.
# The format for calendar component can be combinations of the following:
# d - day of month (no leading zero)
# dd - day of month (two digit)
# o - day of year (no leading zeros)
# oo - day of year (three digit)
# D - day name short
# DD - day name long
# m - month of year (no leading zero)
# mm - month of year (two digit)
# M - month name short
# MM - month name long
# y - year (two digit)
# yy - year (four digit)
calendar.date.format=dd/mm/yyyy
calendar.datetime.format=dd/mm/yyyy HH:mm:ss
calendar.time.format=HH:mm:ss
它更改了日期格式,但当我计划任何报告时,日期字段显示为无效日期(见下文)。有人能帮我改变在jasperserver上正常工作的日期格式吗
JasperReports服务器的6.10版之前存在一个bug,请参阅。目前我不得不使用解决方案2 解决方案#1 如果可能,请更新至6.10版 解决方案#2 此解决方案有点长,但如果两个步骤(更改源代码、生成优化的js文件)都完成,则可以正常工作: 您必须编辑一个js文件才能正常工作。使用您的案例所需的模式 在文件
/opt/jasperreports-server-cp-5.5.0a/apache tomcat/webapps/jasperserver/scripts/scheduler/model/job.js
中,您必须更改以下内容:
第5行
发件人:
var UI_DATE_PATTERN = "YYYY-MM-DD HH:mm";
致:
var UI_DATE_PATTERN = "DD.MM.YYYY HH:mm";
data.trigger.startDate = moment(data.trigger.startDate,UI_DATE_PATTERN).format(SERVICE_DATE_PATTERN);
第766行
发件人:
data.trigger.startDate = moment(data.trigger.startDate).format(SERVICE_DATE_PATTERN);
致:
var UI_DATE_PATTERN = "DD.MM.YYYY HH:mm";
data.trigger.startDate = moment(data.trigger.startDate,UI_DATE_PATTERN).format(SERVICE_DATE_PATTERN);
优化的Java脚本
注意:由于优化的Javascript文件(据我所知不是编辑的文件),请记住您可能需要重新创建优化的js文件,因为优化的文件是JRS使用的文件。至少在V5.6.x中是这样的:
jssources
复制到js sources
:
•将/scripts
复制到js源代码/scripts
•将/fusion
复制到js sources/fusion
(可选,仅限专业版)js源代码
目录js优化输出
目录node.js
。将nodejs
文件夹直接放在工作文件夹中r.js
,这是一个requirejs优化文件,并将其直接放在工作文件夹中Working/js sources
中对JavaScript文件进行更改%cd正在工作
%nodejs\node r.js-o js sources\scripts\build.js appDir=js sources\scripts baseUrl=。优化=uglify2 dir=js优化输出
js优化输出
复制到/optimized scripts
(其中webapp是JR的位置)注意:如果执行所有这些操作后出现问题,请记住清除浏览器缓存。我已尝试了您建议的所有步骤,但它确实生成了任何优化的脚本,我相信这可能是因为6.0.1中没有fusion目录。据我所知,该目录是可选的,因为只有专业版本才可能有。我想在执行这些步骤时出现了一些问题。很抱歉,我下载了不正确的require js,我已经更正,它现在正在生成优化的脚本,看起来很有希望,如果它有效,我会更新你,谢谢@tobi6:)