三字符夏令时代码的 ColdFusion 2018 和 BlazeDS DateTime 解析错误
ColdFusion 2018 and BlazeDS DateTime Parse Error for Three Char Daylight Saving Time Code
当使用 BlazeDS(Flex 应用程序)向 CF 发送日期,并且发送的日期在夏令时之内时,CF 失败并出现错误:
[BlazeDS] Error deserializing client message.
coldfusion.runtime.locale.CFLocaleBase$InvalidDateTimeException: July 8, 2016 6:00:00 PM EDT is an invalid date or time string.
我的猜测是,这可能是由于 CF 2018 使用 Java 10 造成的,它在使用三字符时区格式的 CLDR 中存在问题。 (我们是美国店)。即使有标准的 JVM 开关 -Djava.locale.providers=COMPAT,SPI
它也不起作用,每次都失败。
有没有人知道如何解决?我将尝试使用单独的 JVM 作为测试,但不确定这是否有效。我怀疑 BlazeDS 不能很好地与 JVM(使用它自己的,也许?)
这是一个包含示例项目的 zip 文件,请参阅 "ADDITIONAL" 子文件夹以获取日志、代理 AMF 转储的屏幕截图等。将 Additional -> remotingDateTest 文件夹复制到您的 Web 根目录并调整 RemoteObject在项目申请文件中... https://www.dropbox.com/s/xte4bqrkp7loefi/Remoting%20Test.zip?dl=0
Adobe 实际上为我提供了答案:将以下内容添加到我的 JVM args(有效!):
-Duser.timezone=NewYork
当使用 BlazeDS(Flex 应用程序)向 CF 发送日期,并且发送的日期在夏令时之内时,CF 失败并出现错误:
[BlazeDS] Error deserializing client message. coldfusion.runtime.locale.CFLocaleBase$InvalidDateTimeException: July 8, 2016 6:00:00 PM EDT is an invalid date or time string.
我的猜测是,这可能是由于 CF 2018 使用 Java 10 造成的,它在使用三字符时区格式的 CLDR 中存在问题。 (我们是美国店)。即使有标准的 JVM 开关 -Djava.locale.providers=COMPAT,SPI
它也不起作用,每次都失败。
有没有人知道如何解决?我将尝试使用单独的 JVM 作为测试,但不确定这是否有效。我怀疑 BlazeDS 不能很好地与 JVM(使用它自己的,也许?)
这是一个包含示例项目的 zip 文件,请参阅 "ADDITIONAL" 子文件夹以获取日志、代理 AMF 转储的屏幕截图等。将 Additional -> remotingDateTest 文件夹复制到您的 Web 根目录并调整 RemoteObject在项目申请文件中... https://www.dropbox.com/s/xte4bqrkp7loefi/Remoting%20Test.zip?dl=0
Adobe 实际上为我提供了答案:将以下内容添加到我的 JVM args(有效!):
-Duser.timezone=NewYork