Datetime 为什么cxf jax rs日期字段序列化有冒号?
rest cxf服务的my class entity有一个日期字段。抛弃JsonProvider的格式为:Datetime 为什么cxf jax rs日期字段序列化有冒号?,datetime,serialization,cxf,jettison,Datetime,Serialization,Cxf,Jettison,rest cxf服务的my class entity有一个日期字段。抛弃JsonProvider的格式为: “日期”:“2012-08-13T16:40:07.281-03:00” 但在GSon客户端,它的格式符合iso8601标准(不带冒号时区),如下所示: “日期”:“2012-08-13T16:40:07.281-0300” 抛弃jax-rs发生了什么 在CXF抛弃中有没有简单的方法来指定日期时区格式 谢谢您可以使用org.apache.cxf.jaxrs.ext.ParameterHan
“日期”:“2012-08-13T16:40:07.281-03:00”
但在GSon客户端,它的格式符合iso8601标准(不带冒号时区),如下所示:
“日期”:“2012-08-13T16:40:07.281-0300”
抛弃jax-rs发生了什么
在CXF抛弃中有没有简单的方法来指定日期时区格式
谢谢您可以使用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();
}
}
@组件
公共类DateHandler实现ParameterHandler{
公共日期fromString(字符串s){
DateTimeFormatter fmt=ISODateTimeFormat.dateTime();
返回fmt.parseDateTime.toDateTime(DateTimeZone.UTC.toDate();
}
}
您必须在构建ServerFactoryBean时获得它。这可以在Spring的XML配置中完成,并且可以用SpringJavaConfig实现。我使用了SpringJava配置
@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();
@Bean
公共列表提供程序(){
返回新的ArrayList(Arrays.asList)(您的其他提供程序,例如错误处理程序、故障屏障
日期处理程序);
}
JAXRSServerFactoryBean工厂=。。。
addAll(jaxRSProviders);
factory.create();
@user1036-谢谢你的建议。这是我以前的问题。在那段时间里,我通过在发送操作之前使用cxf处理程序/拦截器和在时间段之间插入冒号来解决它。谢谢。-谢谢你的建议。这是我以前的问题。在那段时间里,我通过在发送之前使用cxf处理程序/拦截器和在时间段之间插入冒号来解决它手术,谢谢。