我正在使用apache CXF创建一个消耗multipart / form-data的JAX-RS服务,其中一个部分是application/json
,我正在Java bean中处理它。我遇到的问题是标准的jettison反序列化器无法识别传入的日期格式,我只得到null
。
服务是:
@POST
@Path("/blah/")
@Consumes("multipart/form-data")
public String doBlah(MultipartBody body)
{
JSON json = atts.get(0).getObject(JSON.class);
}
JSON对象是:
class JSON {
Date date;
}
传入的日期类似于:November 25, 2012 13:35:24
我知道如何使用SimpleDateFormat
进行转换,因此我可以将JSON更改为字符串并获取值,然后可以手动执行转换...但是你如何在CXF中注册一个类来进行抛弃转换?
beans.xml中是否有配置或我可以添加自定义处理程序和/或覆盖默认Date
处理的内容?
答案 0 :(得分:0)
您可以在Spring中注册自定义日期处理程序,如下所示:
<jaxrs:server …>
<jaxrs:providers>
<bean class='….DateHandler' />
</jaxrs:providers>
</jaxrs:server>
日期处理程序类本身非常简单:
public class DateHandler implements ParameterHandler<Date> {
@Override
public Date fromString(String s) {
Date ret = // do your magic
return ret;
}
}