EclipseでSpring STSを使用して、シンプルなWebベースのSpring Bootプロジェクトを作成しています。 Eclipseで問題なく実行できますが、JARファイルとしてエクスポートしようとすると、次のようになります。
rg.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
俺の public static void main
に位置しています Application.Java
、 とともに @SpringBootApplication
アノテーション。
すべてのMaven依存関係を100回再確認しました。
何が悪いのですか?
ほとんどの場合、組み込みのEclipseエクスポーターを使用してjarを生成します。jarには、プロジェクトで実際に生成されたターゲットファイルのみが含まれます。 「ファット」(スタンドアロン実行可能)jarを作成するには、Spring Boot MavenまたはGradleプラグインを使用してjarを「再パッケージ」する必要があります。
まず、 ビルド設定にrepackage
目標が含まれている であることを確認してから、Maven package
ターゲットを使用します。これを行う最も簡単な方法は、コマンドラインからmvn package
を実行することです(OSにMaven CLIパッケージをインストールする必要がある場合があります)。また、EclipseでPOMを右クリックして[別のユーザーとして実行]をクリックすると、Eclipse内から特定のMaven操作を実行できます。
これは、ウィンドウ7/10マシンでの単一行コマンドであり、プロジェクトフォルダー(プロジェクトワークスペース内)へのコマンドプロンプトを表示します。私はEclipseを使用しませんIDE POMのMavenの目標を使用できますが、そこでMavenの目標を使用することもできます。ウィンドウマシンでは、エクスポートと実行にはcmd.exeを使用します。
mvnw clean package
uNIXカーネルベース
./mvnw clean package
ワークスペース内に移動し、プロジェクトのルートフォルダーに移動する必要があります。 Mavenラッパーmvnwが表示されます。この場合、mavenをインストールする必要はなく、同じレベルの.mvnフォルダーがそのために必要なjarを提供します。プロジェクトの場合
D:\workspace\Zuteller Workspace\zusteller>mvnw clean package
zusteller-0.0.1-SNAPSHOT.jar
targetフォルダー内の同じレベル。
D:\workspace\Zuteller Workspace\zusteller>Java -jar target\zusteller-0.0.1-SNAPSHOT.jar
自己完結型アプリケーション(組み込みTomcat)を実行し、localhost:8080/yourプロジェクトでアクセスできます。