あなたのコンテナが3.0よりも古いバージョンのサーブレットを使用しているため、web.xmlを使用する必要があるとします。
SpringブートはServlet 3.0で構築されています。メインクラスを更新してSpringBootServletInitializerを拡張し、SpringにServlet 3.0サポートを使用するよう指示するconfigureメソッドをオーバーライドする必要があります。 Tomcatのような組み込みコンテナにはServlet 3.0が必要です。そのため、組み込みコンテナの開発プロセス(JUnitテストを含む)中にプロジェクトを開始したい場合は、私が知っているところからweb.xmlをServlet 3.0に書き直すしかありませんjava config。しかし、実際に古いコンテナにあなたのアプリケーションを展開したい場合は、spring-boot-legacy
モジュールを使用しても構いません。古いコンテナにweb.xmlを使用することができます。あなたがしなければならないのは、web.xmlに org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener
を追加することだけです。
古いコンテナに戦争を展開する方法の詳細については、Spring Bootのofficial documentationを参照してください。
春ブートのServletContext を初期化するために、サーブレット3.0のAPIを使用しています(サーブレットなどを登録する)ので、あなたは、Servlet 2.5コンテナ内 の外箱を同じアプリケーションを使用することはできません。ただし、特殊なツールを使用して古いコンテナに Spring Bootアプリケーションを実行することは可能です。 org.springframework.boot:spring-boot-legacyを の依存関係(Spring Bootのコアとは別に保持され、現在は1.0.2.RELEASEで利用可能な )として含めると、 を作成する必要がありますweb.xmlを開き、コンテキストリスナーを宣言して アプリケーションコンテキストとフィルタとサーブレットを作成します。
入力いただきありがとうございます。現在、サーブレット3.0とTomcat 7.0.75を使用しています。私がweb.xmlに固執している理由は、サーブレットのマッピングがたくさんあり、最初にそれをSpringブートプロジェクトに変換したいからです。現在のweb.xmlを(servletcontainerinitializer)のような適切なものに置き換える予定はありますか? – NatureWonder