私はこの問題に関するStackOverflowの投稿の大部分を読み、多くの修正を試みましたが、最終的に問題を解決するものは何もありませんでした。春はHttpMediaTypeNotSupportedException: Content type 'application/json' not supported
私は次のように定義されたコントローラーを持っています:
@RequestMapping(method = RequestMethod.POST, value = "/update")
public @ResponseBody JSONDomainResponse update(@RequestBody Model inModel)
モデルがそのように見える場所:
public class Model implements Serializable {
private static final long serialVersionUID = 2738522159847487651L;
private String id;
private BigDecimal offset;
@JsonCreator
public Model(@JsonProperty("id") String id, @JsonProperty("offset") BigDecimal offset) {
this.id = id;
this.offset = offset;
}
public String getID() {
return id;
}
public BigDecimal getOffset() {
return offset;
}
public void setID(String id) {
this.id = id;
}
public void setOffset(BigDecimal offset) {
this.offset = offset;
}
}
私が使用しようとしているAJAX呼び出しは次のようになります。
$.ajax({
type : 'POST',
url : '/update',
contentType : "application/json",
data : JSON.stringify({"id":"test", "offset":300})
});
<mvc:annotation-driven/>
context.xmlファイルに構成があり、のMappingJacksonHttpMessageConverter
canRead()メソッドがモデルとJSONメディアタイプに対してtrueを返すことを確認しました。
クラスパスで指定されたJacksonコアとマッパーjarもあります。
コントローラーの署名からModelパラメーターを削除すると、実際に自分の投稿でコントローラーに到達することに気付きました。これにより、モデルに問題があると思われるようになります。ただし、記録される情報は最小限であるため、問題が何であるかを実際に知ることはできません。
前もって感謝します。