当使用 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.
我的猜测是,这可能是由使用 Java 10 的 CF 2018 引起的,它在使用三个字符时区格式的 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 参数中(它有效!):
-Duser.timezone=NewYork
关于apache-flex - ColdFusion 2018 和 BlazeDS DateTime 解析三个字符夏令时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54674629/