0

我正在使用 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处理的东西?

4

1 回答 1

0

您可以在 Spring 中注册自定义日期处理程序,如下所示:

<jaxrs:server …&gt;
    <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;
    }
}
于 2013-01-11T00:50:00.893 回答