page2
@page2

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Tomcat v9.0が起動しない(エクリプス)

Tomcat v9.0が起動しない(エクリプス)

何度か再起動しましたが、同じ状況です。
アドバイスいただけないでしょうか?
※Windows10
※eclipse 2021-06
※tomcat v9.0

////ご指摘により追加説明
以下のようにeclipseのサーバータグからtomcatを起動
image.png

エクリプスからTomcatを起動しようとすると以下の問題が発生します。

image.png

コンソールには、
[重大: 子コンテナーを開始できません。 ]
[重大: 子コンテナーを開始できません。]
[重大: 必要なサーバーコンポーネントを開始できなかったため、Tomcat を開始できません]
とあり、さらに詳細の部分に
[警告: Webアプリケーション[test2]は[mysql-cj-abandoned-connection-cleanup]という名前のスレッドを開始したようですが、停止に失敗しました。 これはメモリリークを引き起こす可能性が非常に高いです。 スレッドのスタックトレース:]
とあります。
mysqlコネクターに何か原因があると推測し、
tomcatv9.0のlibフォルダにあるmysql-connector-java-8.0.18.jarを削除しようとすると「openJDKが使用中のため削除できません」と出ます。
image.png

どうやらjavaがmysqlコネクターを使用したままになっているため、tomcatのcleanup機能が終了できずにエラーとなっているのでは?
そこで、
タスクマネージャーから強制終了を試みましたが、「プロセス」、「詳細」、「サービス」の各タグにjava又はmysqlという文字は見当たらず、でした。

javaが使用したままになっているmysqlコネクターを解放できれば、tomcatも起動できるのでは?と推測しております。
お手数ですが、解決方法をご教授頂けないでしょうか?
宜しくお願いいたします。

以下、eclipseのコンソール内容の一部です、
//////////////////////////////////////////////////////////////////
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.catalina.loader.WebappClassLoaderBase (file:/C:/Users/00800/Documents/pleiades/pleiades/tomcat/9/lib/catalina.jar) to field java.lang.Thread.threadLocals
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
警告: Webアプリケーション[polapp2]は[mysql-cj-abandoned-connection-cleanup]という名前のスレッドを開始したようですが、停止に失敗しました。 これはメモリリークを引き起こす可能性が非常に高いです。 スレッドのスタックトレース:
java.base@11.0.8/java.io.WinNTFileSystem.getLastModifiedTime(Native Method)
java.base@11.0.8/java.io.File.lastModified(File.java:957)
org.apache.catalina.webresources.FileResource.getLastModified(FileResource.java:95)
org.apache.catalina.webresources.CachedResource.getLastModified(CachedResource.java:190)
org.apache.catalina.webresources.CachedResource.validateResource(CachedResource.java:107)
org.apache.catalina.webresources.Cache.getResource(Cache.java:87)
org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:216)
org.apache.catalina.webresources.StandardRoot.getClassLoaderResource(StandardRoot.java:225)
org.apache.catalina.loader.WebappClassLoaderBase.findResource(WebappClassLoaderBase.java:938)
org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:1057)
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:117)
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:84)
java.base@11.0.8/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base@11.0.8/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.8/java.lang.Thread.run(Thread.java:834) [日 7月 25 07:48:44 JST 2021]

1

1Answer

2日間彷徨った結果、解決しました。
拙い質問に関わらずアドバイスいただいた@reta様には感謝しかございません。
ありがとうございました!
以下、状況を報告します。
【トラブルの原因】
外部ライブラリーをプロジェクト直下にデプロイし、そこからパスを通した事が原因でした。
エクリプス的にはこれでOKなのですが、tomcatの場合は、WEB-INFO\libにデプロイする必要がありました。

【詳細】
1)「mysql-cj-abandoned-connection-cleanup・・・停止に失敗・・」は無視して良いメッセージ
「Webアプリケーション[testapp]は[mysql-cj-abandoned-connection-cleanup]という名前のスレッドを開始したようですが、停止に失敗しました。 これはメモリリークを引き起こす可能性が非常に高いです。」
これは、あくまで「警告」なので、tomcatが起動しない原因についてではなかったと思われます。
mysqlを使用する際に、出る警告のようですが、無視をしてよかったようです。
https://knowledge.bizrobo.com/hc/ja/articles/360036093531-Tomcat%E5%81%9C%E6%AD%A2%E6%99%82%E3%81%AB%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E8%AD%A6%E5%91%8A%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8

2)犯人を示すエラーメッセージは「Illegal reflective access by org.apache.catalina.loader.WebappClassLoaderBase・・・」でした。
参照ライブラリーの参照が不正 ということでしょうか。
上記したように、外部ライブラリはWEB-INFO\libにデプロイする必要がありました。

大変、お騒がせしました。

0Like

Your answer might help someone💌