【发布时间】:2010-11-02 02:56:12
【问题描述】:
我正在使用 JAX-WS (WAS 7) --> Websphere ESB 7 --> JAX-WS (WAS 7),用时间戳填充 xsd:dateTime 字段。
流程如下:
- WAS - 实例化响应对象
- 在 POJO [
DatatypeFactory.newInstance().newXMLGregorianCalendar((GregorianCalendar)Calendar.getInstance())]"2010-11-02T15:35:42.047+13:00"中填充 XMLGregorianCalendar 字段 - 通过 ESB 传回响应
- 检查网关“
2010-11-02T02:35:42.047Z”中的响应
如您所见,新西兰时区信息被忽略。返回的XMLGregorianCalendarImpl.timezone=0,实例化时为XMLGregorianCalendarImpl.timezone=780。
POJO 是使用“JAX-WS RI IBM 2.1.1 in JDK 6”生成的
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MessageControl", namespace = "http://xmlschema.customer.co.nz/generic/Response123", propOrder = {
"messageTrackTrace",
"messageDate",
})
public class PojoClass {
@XmlElement(name = "MessageTrackTrace")
protected String messageTrackTrace;
@XmlElement(name = "MessageDate", required = true)
protected XMLGregorianCalendar messageDate;
这是 ESB 中的错误吗?也许有我可以更改的配置? 干杯
【问题讨论】:
-
它没有忽略它,它正在转换为 UTC。
标签: java web-services xsd jax-ws esb