2017-11-18 13 views
0

私はSpring RESTアプリケーションを開発中です。私は以下のような機能を備えたレストコントローラを持っています。上記のルータの場合HTTPクライアントからPOSTリクエストを取得する際に、追加のJSONフィールドを無視します。

@RequestMapping(method=RequestMethod.POST) 
public ResponseEntity<Map<String, String>> saveProfileEntry(@RequestBody ProfileEntry entry) { 
    // 
} 

、私はそれがパスで使用してProfileEntry POJOのようにフィールドの正確類似した以下の数を投稿した場合。投稿されたJSONに追加のフィールドがあると、リクエストは失敗し、次のエラーが生成されます。

HTTPステータス[不正なリクエスト] サーバができないか、原因クライアントエラー (例えば、不正なリクエストの構文、無効な要求メッセージフレーミング、または 欺瞞であることを認識されているものに リクエストを処理しません要求ルーティング)。

クライアントが私のPOJOで利用できない追加のデータを送信する可能性がある場合、どうすればこの例外を回避できますか?

答えて

0

サーブレットの設定に以下を追加し、未知のプロパティを無視するようにPOJOに注釈をつけて解決できました。 POJO

@JsonIgnoreProperties(ignoreUnknown=true) 

ため

Serveletコンフィグ

<bean id="jacksonMessageConverter" 
    class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean> 
    <bean 
     class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
     <property name="messageConverters"> 
      <list> 
       <ref bean="jacksonMessageConverter" /> 
      </list> 
     </property> 
    </bean> 

注釈は、これが私のために働きました。

関連する問題