私は単純なガイドに従い、ローカルのspring-bootベースのWebアプリケーションを埋め込みTomcatを使って作成しました。次のステップでは、リモートのLinux Tomcatサーバーに展開しようとしています。私は最初にこれらのステップを踏んだ:tomcatにspring-boot appを設定する
(1)アプリケーションのメインクラスを更新してSpringBootServletInitializer
に更新する。 SpringBootApplication
は、プロジェクトがwarファイルではなく、jarファイルを生成するように(2)ビルド構成を更新し
public class WebInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootWebApplication.class);
}
}
@SpringBootApplication
public class SpringBootWebApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootWebApplication.class, args);
}
}
@Controller
public class IndexController {
@RequestMapping("/")
String index(){
return "index";
}
}
私の前のメインクラスです。
<packaging>war</packaging>
(3)提供されているように、埋め込みサーブレットコンテナの依存関係をマークします。唯一spring-boot-starter-web
は、私はちょうど1
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
を追加する前に、私は私が私を取得する(4)私はまた、MavenのクリーンとMavenインストールを実行した後application.properties
server.context-path = /springbootdemo
でアプリのパスを追加して、この依存関係を持っていませんspring-boot-web-0.0.1-SNAPSHOT.war
して、リモートサーバにTomcatのWebアプリケーションにそれを置くが、私はそれらの両方に404を取得しています:
http://host:port/springbootdemo
http://host:port/spring-boot-web
http://host:port/spring-boot-web/springbootdemo
権利がどうあるべきかここに私のアプリへの道?ローカルで実行している場合、アプリケーション名なしでhttp://localhost:8080/で実行されています。サーバーcatalina.outがログを見ると、例外もサーバーも起動しません。
ありがとうございます!それは私が常に持っている大きな疑いです:)今私は理解しています。 – feichangh