Eclipseを使用していてとつぜん現れるエラー本当に悩まされますよね。
今回は私が遭遇したエラーと解決法した方法について書いていこうと思います。
エラー状況
EclipseのVersionは、 2020-06 (4.16.0)
動的プロジェクトでJSPやServletを作成していてTomcat v9.0サーバーを返してプログラムを実行した際にエラーが発生しました。
Eclipseの画面上には、
「開始中localhostのTomcat v9.0サーバーに問題が発生しました。」
「サーバーlocalhostのTomcat v9.0サーバーは始動に失敗しました。」
と出力。
ログには下記のようなエラーが表示されました。
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.catalina.loader.WebappClassLoaderBase (file:/Applications/Eclipse_2020-06.app/Contents/tomcat/9/lib/catalina.jar) to field java.io.ObjectStreamClass$Caches.localDescs
WARNING: Please consider reporting this to the maintainers of org.apache.catalina.loader.WebappClassLoaderBase
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
実際の画像がこちら
自分自身なにか触ったわけでは無いので、もう訳が分からないです。
解決法
ネットで探してみても同じメッセージが表示されているような文章はあるものの全く同じ症状は無く解決法が見つからないまま途方にくれてました。
改めてプログラムを見てみるとWebcontentの下に何故か今まで見たこともないweb.xmlファイルが生成されているのを発見。(※エラーの解決に夢中になってしまい写真を取り忘れました。)
その中を見てみると過去に消したはずのServletクラスファイルへのパスなどが記載されていました。
恐る恐るそのパスのみを消して実行。
同じエラーが抽出。
今度は一旦ファイルの内容のコピーを取り、ファイルを削除して実行。
エラーが消えて実行が出来るようになりました。
その他実行できないプログラムがいくつかあったので、見てみるとやはりWebContentの下に見慣れないweb.xmlファイルが生成されていました。
同じく削除して実行するとEclipseのエラーが消えて実行が出来るようになりました。
まとめ
今回の原因は未だに分からないですが、Tomcatが指導できないエラーは本当に困ります。プロジェクトの作成途中だとほんとに泣きたくなりますよね。
なので今回の解決法が正しいとは言えませんがどなたかの手助けになればと考えて一応備忘録として残しておきます。
実はこのエラーと同時にもう一つエラーが起こっていたのでそちら解決法も次のblogに書き残しておきたいと思います。
次のブログの同時に起きていたエラー解決も参考にしてください。
最後までお読み頂きありがとうございました。
駆け出しエンジニアけいこ♂
コメント
[…] […]