Tomcat は、Springboot プロジェクトの WAR パッケージの起動時にエラーを報告します: 子の起動時にエラーが発生しました

Tomcat は、Springboot プロジェクトの WAR パッケージの起動時にエラーを報告します: 子の起動時にエラーが発生しました

今日、会社の Springboot プロジェクトは、テストのためにテスト サーバーにデプロイする準備が整いました。WAR ファイルをパッケージ化して Tomcat にインストールして起動すると、フロントエンド ファイルにはアクセスできますが、インターフェイス リクエストは常に 404 です。長い間、原因を探していました。Tomcat の起動は成功し、WAR パッケージ化もビルドの成功を促します。Tomcat の起動ログにエラーが見つかりました。

java.lang.IllegalStateException: 子の開始エラー
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720) で
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) で
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705) で
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978) で
org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1848) で
java.util.concurrent.Executors$RunnableAdapter.call(不明なソース)
java.util.concurrent.FutureTask.run(ソース不明)
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) で
java.util.concurrent.AbstractExecutorService.submit(ソース不明)
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773) で
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427) で
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576) で
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309) で
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) で
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) で
org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) で
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936) で
org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) で
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) で
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) で
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) で
java.util.concurrent.FutureTask.run(ソース不明)
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) で
java.util.concurrent.AbstractExecutorService.submit(ソース不明)
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) で
org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) で
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) で
org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) で
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) で
org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) で
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) で
org.apache.catalina.startup.Catalina.start(Catalina.java:738) で
sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド)
sun.reflect.NativeMethodAccessorImpl.invoke(不明なソース)
sun.reflect.DelegatingMethodAccessorImpl.invoke(不明なソース)
java.lang.reflect.Method.invoke(不明なソース)
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342) で
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) で
原因: org.apache.catalina.LifecycleException: コンポーネント [org.apache.catalina.webresources.JarResourceSet@67d48005] の初期化に失敗しました。
org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) で
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139) で
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173) で
org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:726) で
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) で
org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4792) で
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4928) で
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) で
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717) で
... 37 件以上
原因: java.lang.IllegalArgumentException: java.util.zip.ZipException: zip ファイルを開くときにエラーが発生しました
org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:143) で
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) で
... 44件以上
原因: java.util.zip.ZipException: zip ファイルを開くときにエラーが発生しました
java.util.zip.ZipFile.open(ネイティブメソッド)
java.util.zip.ZipFile.<init>(ソース不明)
java.util.zip.ZipFile.<init>(ソース不明)
java.util.jar.JarFile.<init>(不明なソース)
java.util.jar.JarFile.<init>(不明なソース)
org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:221) で
org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:206) で
org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140) で
... 45件以上

私は次のことに注意を払ってきました: 子レベルの開始時にエラーが発生しました。私は長い間解決策を探していました!その後、次の zip エラーの問題に注目し、パッケージングの問題を検討し直しました。最終的に、パッケージング中に問題が発生したことがわかりました。最終的にはビルドは成功しましたが、その前にエラーが表示されていましたが、気づきませんでした。スクリーンショットは次のとおりです。

これが問題です、どうやって解決するのでしょうか?

解決:

Maven リポジトリからエラーの出た jar パッケージを削除し、再度ダウンロードしてパッケージ化してみました。今度はエラーが出ませんでした。その後 Tomcat に放り込んで起動してみました。エラーログも出ず、アクセスも正常でした!

この記事を活用して、今後はプロジェクトの実行、パッケージ化、その他のプロセスやログにもっと注意を払うように記録し、自分自身に思い出させたいと思います。

要約する

Tomcat が springboot プロジェクト war パッケージ エラーを開始することに関するこの記事はこれで終わりです: 子を開始するときのエラー解決。Tomcat が springboot プロジェクト war パッケージ エラーを開始することに関する関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Springboot プロジェクトを開始するときにコマンドを使用して環境を動的に指定する方法
  • 管理者 - SpringBoot + Maven マルチスタート環境構成例の詳細な説明
  • IDEA2020.1 は SpringBoot プロジェクトを起動しますが、Java パッケージ: xxx は存在しません
  • SpringBoot+jsp プロジェクトを開始するときに発生する 404 の解決策
  • Centos で SpringBoot プロジェクトのスクリプトを開始および停止する方法
  • Springbootプロジェクトを起動し、対応する環境を指定する方法

<<:  jsを使用してシンプルなカルーセル効果を実現する

>>:  JQueryはアニメーション効果の非表示と表示を実装します

推薦する

docker runコンテナの自動終了の解決策

今日、Dockerfile を使用してイメージを作成したときに問題が発生し、イメージの実行後にコンテ...

ホストNginx + Docker WordPress Mysqlを設定するための詳細な手順

環境Linux 3.10.0-693.el7.x86_64 Docker バージョン 18.09.0...

MySQLのビューの詳細な説明

ビュー: MySQL のビューはテーブルと多くの類似点があります。ビューも複数のフィールドと複数のレ...

JS で Websocket ベースのマルチターミナル ブリッジング プラットフォームを実装する方法

目次1. デバッグ対象2. WebSocketの機能3. ソケット接続を確立する3.1 部屋の作成方...

HTML で相対パスを使用してディレクトリのすべてのレベルのファイルを取得する方法の詳細な説明

相対パスの概念現在のファイルの場所を参照ポイントとして使用して、ターゲット ファイルへのパスを確立し...

Dockerオーバーレイはホスト間のコンテナ相互通信を実現します

目次1. Dockerの設定2. レジストリとネットワークを作成する3. コンテナを起動する環境説明...

LinuxシステムにTomcatをインストールし、サービスの起動とシャットダウンを構成する

Linuxシステムでサービスの起動とシャットダウンを構成する1. コマンドcd /etc/init....

JavaScript コンストラクタとプロトタイプの関係

目次1. コンストラクタとプロトタイプ1. コンストラクター2. コンストラクタ問題3. コンストラ...

MySQL システム ユーザーが開くことができるファイルの最大数に関する簡単な説明

本から学ぶことは常に浅はかで、これがさらなるダウンタイムを引き起こすことには決して気づきません......

Vue で echarts を使用してコンポーネントを視覚化する方法

echarts コンポーネントの公式ウェブサイト アドレス: https://echarts.apa...

JSONObject の使用方法の詳細な説明

JSONObject は単なるデータ構造であり、JSON 形式のデータ構造 ( key-value構...

MySQL5.7 シングルインスタンス自動起動サービスの設定プロセス

1.MySQLのバージョン [root@clq システム]# mysql -v MySQL モニター...

小さな画像をクリックしたときに更新せずに大きな画像コードが表示されるようにLightboxを実現するためにCSSを使用する

小さな画像をクリックしたときに更新せずに大きな画像コードが表示されるようにLightboxを実現する...

Google 翻訳ツール: 多言語ウェブサイトを素早く実装

Google Chinaは、ウェブサイトやブログを素早く簡単に多言語化できる翻訳ツールをリリースした...

ベースリンクタグの使用の紹介ベース

<br />リンクをクリックすると、ポップアップ表示される Web ページ アドレスは ...