2017-06-13 18 views
2

私はSpring 4でhttp PUTする必要がある約250MBのリクエストボディを持っています。私はJackson Streaming APIがこの大きなボディを扱う良い方法かもしれないと考えていました。私はOOMの問題を抱えています。私はただ一つのエンドポイントに対してこれを有効にする必要があります。誰もがこれをSpring 4のために設定する方法を知っていますか?@RestController?私はWebMvcConfigurerAdapterHttpMessageConvertersの言及を見ましたが、Spring MVCとJackson Streaming APIを統合する方法の例を見つけることができません。Spring 4 MVCでJackson Streaming APIを設定する方法

Thx!
-David

答えて

2

InputStreamをリクエストから取得し、JsonParserの初期化に使用できます。それは次のようになります:

@RestController 
public class MyController { 

    private static final JsonFactory jfactory = new JsonFactory(); 

    @PostMapping(path = "/bigfileshere") 
    public void enpointForBigFiles(HttpServletRequest request, HttpServletResponse response) { 
     InputStream stream = request.getInputStream(); 
     try (JsonParser parser = jfactory.createParser(stream)) { 
      while (parser.nextToken() != JsonToken.END_OBJECT) { 
       String fieldname = parser.getCurrentName(); 
       // do other stuff 
      } 
     } catch (IOException e) { 
     } 
    } 
} 
+0

素晴らしい、返信のためにありがとう!私は今日これを試してみる –

関連する問題