2

JSON を処理するために Jackson を使用している JAX-RS サービスに、Ext-JS を使用してファイルが添付されたフォームを送信したいと考えています。

私が抱えている問題は、JSON データに Content-Type がなく、設定方法がわからないことです。

現在、リクエストの本文は次のようになっています。

-----------------------------4664151417711
Content-Disposition: form-data; name="productBinary"; filename="new.txt"
Content-Type: text/plain

blah
-----------------------------4664151417711
Content-Disposition: form-data; name="myData"

{"MyData": [1,2,3] }
-----------------------------4664151417711--

JSONセクションにContent-Typeがないため、JAX-RSサービスでJSONをオブジェクトに逆シリアル化できないことを除いて、すべて問題ありません

JAX-RS サービスは次のようなものです。

@POST
@Path("/submit")
@Consumes("mulitipart/form-data")
public String submit( MultipartBody body )
{
    MyData myData = body.getAttachmentObject("myData",MyData.class);
    return "done";
}

何か案は?

アップデート:

これを行う「良い」方法はないようです。代わりに、json デシリアライザーを直接呼び出す必要があることがわかりました。

ObjectMapper om = new ObjectMapper();
InputStream is = body.getAttachment("myData").getDataHandler().getInputStream()
MyData md = om.readValue(is,MyData.class);
4

0 に答える 0