LoginSignup
1
0

spring-mvcでgetterが無く406 Not Acceptable

Posted at

springで406 Not Acceptableが発生して原因が分かるまでに多少の時間を要した。lombokの @Data が何らかの要因で無効になりgetterが存在しないとjson生成が上手くいかず、結果として406 Not Acceptableになるようだ。

以下は検証用のコードなど。

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SomeRestController {
  @GetMapping("/item")
  public Item item() {
    return new Item("11");
  }
}

ポイントとして、あえてlombokの @Dataを外している。

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

//@Data
@AllArgsConstructor
@NoArgsConstructor
public class Item {
  String item;
}

この状態で http://localhost:8080/item にアクセスすると下記キャプチャのように406 Not Acceptableになる。

image.png

詳しい原因までは調査していないが、lombokでgetterが生成されないのでjsonの生成も上手くいかず、converterで何かしらおかしなことになるんだろうな、と想像している。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0