使用带有java的Web服务soap时的日历 - 日期问题

时间:2017-04-21 13:56:43

标签: java web-services date soap calendar

当我通过带有java的Web服务获取对象并在编辑了它的某些字段后,当我想用​​相应的Web服务方法将其保存回来时,我会遇到日期字段格式的问题。

我无法修改的Web服务的api使用类Java - Calendar作为带日期的相应字段。 xml中dateTime的可接受格式为:yyyy-MM-dd' H&C; HH:mm:ss like

<Generated>2017-03-21T10:22:55</Generated>

但在更新了一些数据并尝试保存后,我收到以下错误:

AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
faultSubcode: 
faultString: Invalid property (E3010)
faultActor: 
faultNode: 
faultDetail: 
{}:null

在肥皂回应中有类似的东西:

<?xml version="1.0" encoding="UTF-8"?>
 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
        <faultcode>SOAP-ENV:Client</faultcode>
        <faultstring>Invalid property (E3010)</faultstring>
        <faultactor/>
        <detail>Property (of type 'dateTime') has badly formatted value '2017-03-21T10:22:55.000Z'. Data path: SaveRequest->Generated</detail>
    </SOAP-ENV:Fault>
 </SOAP-ENV:Body>

问题在于我不知道如何消除毫秒和“Z&#39;从价值。

我尝试过类似的事情:

Calendar calendar = object.getGenerated();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
String formatted = formatter.format(calendar.getTime());
calendar = javax.xml.bind.DatatypeConverter.parseDateTime(formatted);

但是它不起作用,因为Calendar类正在设置毫秒和&#39; Z&#39;在Web服务的属性中。

知道如何解决这个问题吗?我的意思是删除毫秒和&#39; Z&#39;从Calendar属性?

0 个答案:

没有答案