古いSpring Frameworkのプロジェクトを勉強のため色々バージョンアップしつつ起動させようとしていたところ、何か妙なエラーが出てREST APIが動かない状態になった。
org.codehaus.jackson.map.JsonMappingException: No serializer found for class ... and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0])
色々試行錯誤したところLombokがあまりちゃんと動いておらずリクエストボディの値取得やレスポンスボディの作成に失敗するようになっていた。最終的にはGradleにannotationProcessor
の設定が足りていないという点に気が付くことが出来、これを設定することで正しく動作するようになった。
annotationProcessor 'org.projectlombok:lombok:1.18.24'
元々こういうのが必要だったかどうかいまいち記憶が定かではないが、なんか古い記事で気になるのもあったのでひょっとしたらバージョンアップで必要になったのかもしれない。そうでないのかもしれない。
一応Lombokの公式にはちゃんとアノテーションプロセッサーについてのあれこれもあるため、恐らく自分が知らなかっただけで常識なんだろう。そもそもアノテーションプロセッサーについてもあんまり詳しくないため、こっちをちゃんと勉強すべきなのかもしれない。