スプリングブートプロジェクトを通常のWebプロジェクトとしてTomcatコンテナに公開する
1.パッケージングフォームを変更します
pom.xmlで<packaging>war</packaging>を設定します
2。埋め込まれたTomcatプラグインを取り外します
pom.xmlでSpring-Boot-Starter-Web依存関係ノードを見つけて、次のコードを追加します。
<Dependency> groupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-web </artifactid> <! - 施設を削除します - > <除外> <除外> <groupid> org.springframework.boot < </除外> </除外> </依存関係>
3.サーブレットAPI依存関係を追加します
次の両方の方法は大丈夫です、それらのいずれかを選択してください
<Dependency> groupId> javax.servlet </groupid> <artifactid> javax.servlet-api </artifactid> <version> 3.1.0 </version> <scope> revidence </scope> </dependency> <依存関係> <groupid> org.apache.tomcat < <バージョン> 8.0.36 </version> <scope>提供</scope> </dependency>
4。スタートアップクラスを変更し、初期化方法を書き直します
通常、主な方法を使用して起動します。アプリの起動クラスがあります。コードは次のとおりです。
@springBootApplicationPublic class Application {public static void main(string [] args){springApplication.run(application.class、args); }}Springコンテキストを開始するには、web.xmlに似た構成が必要です。アプリケーションクラスの同時レベルにSpringBootStartApplicationクラスを追加すると、そのコードは次のとおりです。
/** *スタートアップクラスの変更、SpringBootservletInitializerを継承し、構成方法を上書きします */パブリッククラスSpringBootStartApplication拡張SpringBootservletInitializer {@OverRide Protected SpringApplicationBuilder Configure(SpringApplicationBuilder Builder){// Builder.Sources(Application.Class); }}5。パッケージと展開
Project Root Directory(つまり、pom.xmlを含むディレクトリ)に、以下を入力します。
MVNクリーンパッケージで十分です。パッケージが完了するのを待ちます。 [情報]ビルドの成功が表示され、パッケージが成功しました。
次に、ターゲットディレクトリにTomcatのWebAppsディレクトリにターゲットディレクトリに入れ、Tomcatを開始し、自動的に解凍して展開します。
最後にブラウザに入力します
http:// localhost:[ポート番号]/[パッケージプロジェクト名]/
リリースは成功しました。
PS:Springboot Warパッケージのソリューションを見てみましょう。TomcatRunStartupエラー(データベースタイプなしの埋め込みデータベースドライバークラスを決定できません)
私たちのプロジェクトは常にJARパッケージによって直接実行されています。昨日、私の同僚は彼がトムキャットでそれを走りたいと言ったので、私は彼が長い間財産を作るのを手伝いました。記事で紹介します。それを必要とする友達はクリックして表示できます。
その後、それは正常にパッケージ化され、ローカルTomcatに展開され、起動時にタイトルエラーを報告しました。オンラインで検索した後、アノテーションがスタートアップクラスに追加されたと言われました:@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class)
私の個人的なテストは無効です。
解決:
スタートクラスの注釈:@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})個人テストに有効です。