我的休息cxf服务的类实体有一个Date字段。从抛弃JsonProvider格式为:为什么cxf jax-rs日期字段序列化冒号?
"date":"2012-08-13T16:40:07.281-03:00"
但从GSON客户端它的格式为ISO8601合规性(没有冒号时区)为:
"date":"2012-08-13T16:40:07.281-0300"
。
jettison jax-rs发生了什么?
CXF Jettison中有没有简单的方法来指定日期时区格式?
感谢
我的休息cxf服务的类实体有一个Date字段。从抛弃JsonProvider格式为:为什么cxf jax-rs日期字段序列化冒号?
"date":"2012-08-13T16:40:07.281-03:00"
但从GSON客户端它的格式为ISO8601合规性(没有冒号时区)为:
"date":"2012-08-13T16:40:07.281-0300"
。
jettison jax-rs发生了什么?
CXF Jettison中有没有简单的方法来指定日期时区格式?
感谢
您可以使用org.apache.cxf.jaxrs.ext.ParameterHandler:
@Component
public class DateHandler implements ParameterHandler<Date> {
public Date fromString(String s) {
DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
return fmt.parseDateTime(s).toDateTime(DateTimeZone.UTC).toDate();
}
}
而它的构造,必须要有ServerFactoryBean的保持。这可以在Spring中用XML配置来完成,并且可以使用Spring Java配置来实现。我用过Spring Java配置。
@Bean
public List<Object> jaxRSProviders() {
return new ArrayList<>(Arrays.asList(Your other providers, e.g. error handlers, fault barriers
dateHandler));
}
JAXRSServerFactoryBean factory = ...
providers.addAll(jaxRSProviders);
factory.create();
@ user1036 - 谢谢你advice.This是我的老issue.In那些时间,我利用CXF处理器/拦截解决它与时间部分之间插入冒号之前发送operation.thanks。
- 感谢您的建议。这是我的老问题。在那段时间,我通过使用cxf处理程序/拦截器解决了它,并在发送operation.thanks之前的时间部分之间插入冒号。 – Alexander 2014-06-02 18:57:01