【发布时间】:2015-08-05 20:04:08
【问题描述】:
JAX-WS 是否支持 xml 类型 dateTime 的纳秒?
W3C 允许吗?
当客户端发送时:
2015-06-11T09:02:15.863432
服务器端点看到一个未编组的 jaxb 对象,其值为
2015-06-11T09:02:15.863
我已将 dateTime 映射到 String 以查看是否可以在我的 endPoint 上接收 String 值,但我不能。 JAX-WS 中的某些东西在到达我的端点之前会剥离最后三位数字。
<xsd:element name="my_ts" type="xsd:dateTime" minOccurs="0"/>
<jaxb:globalBindings>
<jaxb:javaType name="java.lang.String" xmlType="xsd:dateTime"/>
</jaxb:globalBindings>
W3C 说持续时间有毫秒的限制,但我没有看到 dateTime 有这样的限制。
我正在运行带有 Weblogic 12 的 java EE 6。
【问题讨论】:
-
W3C 允许:“如果需要,可以使用附加数字来提高小数秒的精度,即格式 ss.ss...支持小数点后的任意位数。”来自w3.org/TR/2001/REC-xmlschema-2-20010502/#dateTime
-
附加信息:如果我将逻辑处理程序添加到处理程序链,则逻辑处理程序中存在纳秒。因此,在处理程序链完成后,它们会被 jax-ws servlet 剥离。当然我可以将它们存储在线程上,但这似乎是一个丑陋的解决方法。
标签: java xml jakarta-ee xsd jax-ws