SpringBoot3より発生するエラー
SpringBoot2系からSpringBoot3にバージョンアップした際に発生する代表的なエラーになりますが、「シンボル'servlet'を解決できません」というエラーが発生します。
エラー内容はキャプチャの通り。
SpringBoot3よりJava EEからJakarta EE9へ
SpringBoot2.7までは、SpringFrameworkの5.3をベースにしていましたが、SpringBoot3系以降は、SpringFrameworkは6系をベースとしているようです。
これにより、JavaEEからJakartaEE9へ変更になっているため、パッケージ名の変更が必要になります。
JakartaEE9になるということは、パッケージ名の変更が必要となり、javaxからjakartaに変更することが必要です。
つまりは以下のように変更すれば対応可能です。
変更前
import javax.servlet.ServletException;
変更後
import jakarta.servlet.ServletException;
※ServletExceptionに限らず、「javax.servlet」という記述に対しては全体的に「jakarta.servlet」に変更する必要があります。
javax.validationの変更
javax.validationに対しては、以下のようにjakarta.validationをpom.xmlに追加しないとimportできない場合はありますので注意してください。
<!-- https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api --> <dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> <version>3.0.2</version> </dependency>