0

私はapacheCXFを使用して、multipart / form-dataを消費するJAX-RSサービスを作成しています。その一部の1つは、application/jsonJavaBeanで処理しているものです。私が抱えている問題は、渡された日付形式が標準の投棄デシリアライザーによって認識されず、取得するだけであるということ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 に答える