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はアニメーション効果の非表示と表示を実装します

推薦する

Vueはel-tableを使用して列と行を動的に結合します

この記事の例では、el-tableを使用して列と行を動的にマージするVueの具体的なコードを参考まで...

Docker はキューとタスクのスケジューリングを実現するために Laravel アプリケーションをデプロイします

前回の記事では、Docker を使用して Laravel アプリケーションをデプロイする方法について...

ウェブサイトの速度を上げる6つの方法

1. .js ライブラリ ファイルのアドレスを Google CDN アドレスに置き換えます。 (G...

MySQLの詳細な説明Explain

日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...

Linux で特殊文字のファイル名やディレクトリを削除する方法

inode番号でファイルを削除するまずls -iを使用して、削除するファイルのinode番号を見つけ...

Linux のインスタンスにパブリック IP アドレスを割り当てる方法

説明するこのインターフェースを呼び出すときは、次の点に注意する必要があります。パブリック IP アド...

MySQL 8.0.17 をインストールしてリモート アクセスを構成する方法

1. インストール前の準備データベースのバージョンを確認するコマンド: mysql --versio...

MySQL のマスタースレーブレプリケーションと読み取り書き込み分離の原理と使用法の詳細な説明

この記事では、例を使用して、MySQL マスター/スレーブ レプリケーションと読み取り/書き込み分離...

デザインにおけるユーザーエクスペリエンスの背後にある8つのユーザー本能について話す

編集者注: この記事は、Teambition チームの @娄昊川 が寄稿したものです。Teambit...

HTML の順序なしリストタグと順序付きリストタグの使用例

1. 上部と下部のリストタグ: <dl>..</dl>:上dt下層dd: カ...

IIS 7.5はURL書き換えモジュールを使用してWebページのリダイレクトを実現します。

Apache では構成ファイルで Web ページまたは Web サイトの書き換えを簡単に設定できる...

mysql8 共通テーブル式 CTE 使用例の分析

この記事では、例を使用して、MySQL 8 の共通テーブル式 (CTE) の使用方法を説明します。ご...

ランダムな文字を生成する Java サンプルコード

サンプルコード: java.util.Random をインポートします。 java.util.UUI...

Linux サーバー上で nvidia-docker 環境を設定するプロセスの詳細な説明

Docker はコンテナに相当し、必要な動作環境に応じて対応する動作環境を構築できます。このとき、各...

CocosCreatorでゲームコントローラーを使用する方法

目次1. シーンレイアウト2. ハンドルリスナーを追加する1. イベントの変更を監視する2. 座標設...