久しぶりに書きたくなったので約半年ぶり記事書きます!
最近Eclipseでサーブレットを使っているんですが、ローカルでプロジェクト保存してインポートしたり、Githubのリポジトリからインポートしたりした際に大量のエラーが吐かれて「なんじゃこりゃ!」ってなりました…。
調べてもなかなかこのような解決策が出てこなかったので、同じような人の助けになれば幸いです!
プロジェクトは、スッキリわかるサーブレット&JSP入門に載っているdokoTsubuプロジェクトを使用しています。
スッキリわかるサーブレット&JSP入門の商品サイト
開発環境
Windows11 home
Eclipse 2022
Java17
Tomcat9
Mac版のEclipseでも同様の手順で解決できます。
エラーの症状
# エラー内容
HttpServletRequest を型に解決できません
HttpServlet を型に解決できません
RequestDispatcher を型に解決できません
ServletContext を型に解決できません
WebServlet を型に解決できません
インポートされた javax.servlet は見つかりません
メソッド getServletContext() は型 Main で未定義です
原因
インポートした際にJREシステム・ライブラリーがアンバインドされていることが原因見たいです。
解決策
- Javaのビルド・パスにて
- アンバインド済みのJREシステム・ライブラリーを除去
- モジュールパスにJREシステム・ライブラリーの追加
方法
プロジェクトの上で右クリック→プロパティを開く
左の一覧からJavaのビルドパスを選択する
JREシステム・ライブラリー(アンバインド済み)を選択し、右側の除去を選択する
特に変える必要が無ければワークスペースのデフォルトJREを選択して完了
選択したら、完了を押して、適用するとこんな感じでエラーは無くなると思います!
動作確認
ちゃんと動きました!
是非参考になってくれたらうれしいです!