我正在使用部署到Weblogic 12.1.3.0.0的Spring启动。我遇到的问题是日期在XML输入上被解组。
我提供有效的ISO-8601日期,时区偏移的格式导致org.eclipse.persistence.exceptions.ConversionException。
从堆栈跟踪中,它将eclipselink的版本显示为:eclipselink.jar:2.5.2.v20140319-9ad6abd
此日期处理正确:
2015-11-02T11:15:47.239-的 05:00
虽然这个导致例外:
2015-11-02T11:15:47.239- 0500
根据spec,两者都有效。
提供的Jackson unmarshaller正确处理这种格式。
我不能要求客户端重新格式化输入,因为当客户端在Accept-Type中请求application / json时,此格式是默认输出。
我是否需要更换eclipselink?
ifelse
答案 0 :(得分:0)
代码显示EclipseLink正在使用DatatypeFactoryImpl并将字符串传递给newXMLGregorianCalendar方法。链接I found表示它匹配newXMLGregorianCalendar(x).toXMLFormat()。equals(x),newXMLGregorianCalendar的javadoc使用http://www.w3.org/TR/xmlschema-2/#isoformats指向它,但不包括所有词法表示iso 8601。
我不知道是否有办法改变内部用于转换的实现 - 更有知识的人可能能够进一步提供帮助。但您可以通过在映射上定义XmlAdapter来更改使用的内容,以便为您处理格式。