実現したいこと
Spring Bootを使って「Hello Spring Boot」と表示させるだけのシンプルなプログラムを作り、
さくらVPSサーバ上で動いているTomcatでデプロイしようとしています。
開発自体は自前のPCのSpringToolSuite4で実施し、ビルドしてWarファイルを生成、
サーバ上のTomcatのwebappsフォルダにWarファイルを置くことで、デプロイを試みます。
発生している問題・エラーメッセージ
以下のURL経由でクライアント側から「Hello Spring Boot」文字列表示を試行していますが404エラーが発生し、
表示させることができません。
http://ホスト名:8080/HelloSpring-0.0.1-SNAPSHOT/hello
※Warファイル名は「HelloSpring-0.0.1-SNAPSHOT.war」です。
なお、実行自体はできているようで、TomcatのManager上では「実行中」となっています。
なお、サーバ上でなく自前PCのSpringToolSuite4上でSpringBootアプリケーションとして実行して
http://localhost:8080 にアクセスすると、きちんと表示されます。
catalina.outログにエラーログが吐かれていますが、
文字数が多すぎて本文に書けないため、
ログ内容はコメント欄に記載しております。
該当のソースコード
Main文クラス
Java
1package com.example.demo; 2 3import org.springframework.boot.SpringApplication; 4import org.springframework.boot.autoconfigure.SpringBootApplication; 5import org.springframework.boot.builder.SpringApplicationBuilder; 6import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 7 8@SpringBootApplication 9public class App extends SpringBootServletInitializer { 10 11 public static void main(String[] args) { 12 // TODO 自動生成されたメソッド・スタブ 13 SpringApplication.run(App.class, args); 14 } 15 16 @Override 17 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 18 return application.sources(App.class); 19 } 20 21}
Springコントローラクラス
Java
1package com.example.demo.controller; 2 3import org.springframework.stereotype.Controller; 4import org.springframework.web.bind.annotation.RequestMapping; 5 6@Controller 7public class HelloController { 8 9 @RequestMapping(value="/hello") 10 private String hello() { 11 return "/index.html"; 12 } 13}
表示用index.html
HTML
1<!doctype html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>Spring Boot デビュー</title> 6 </head> 7 <body> 8 <p>Hello Spring Boot</p> 9 </body> 10</html>
pom.xml
XML
1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-starter-parent</artifactId> 8 <version>3.0.0</version> 9 <relativePath/> <!-- lookup parent from repository --> 10 </parent> 11 <groupId>com.example</groupId> 12 <artifactId>HelloSpring</artifactId> 13 <packaging>war</packaging> 14 <version>0.0.1-SNAPSHOT</version> 15 <name>HelloSpring</name> 16 <description>Demo project for Spring Boot</description> 17 <properties> 18 <java.version>17</java.version> 19 </properties> 20 <dependencies> 21 <dependency> 22 <groupId>org.springframework.boot</groupId> 23 <artifactId>spring-boot-starter-web</artifactId> 24 </dependency> 25 <dependency> 26 <groupId>org.springframework.boot</groupId> 27 <artifactId>spring-boot-starter-tomcat</artifactId> 28 <scope>provided</scope> 29 </dependency> 30 <dependency> 31 <groupId>org.springframework.boot</groupId> 32 <artifactId>spring-boot-devtools</artifactId> 33 <scope>runtime</scope> 34 <optional>true</optional> 35 </dependency> 36 <dependency> 37 <groupId>org.projectlombok</groupId> 38 <artifactId>lombok</artifactId> 39 <optional>true</optional> 40 </dependency> 41 <dependency> 42 <groupId>org.springframework.boot</groupId> 43 <artifactId>spring-boot-starter-test</artifactId> 44 <scope>test</scope> 45 </dependency> 46 </dependencies> 47 48 <build> 49 <plugins> 50 <plugin> 51 <groupId>org.springframework.boot</groupId> 52 <artifactId>spring-boot-maven-plugin</artifactId> 53 <configuration> 54 <excludes> 55 <exclude> 56 <groupId>org.projectlombok</groupId> 57 <artifactId>lombok</artifactId> 58 </exclude> 59 </excludes> 60 </configuration> 61 </plugin> 62 </plugins> 63 </build> 64 65</project>
補足情報(FW/ツールのバージョンなど)
●開発PC側
OS:Windows10 Pro 22H2
・Spring Tool Suite 4.15.1
・OpenJDK 17.0.5.8
・Maven 3.8.4
●サーバ側
OS:CentOS 7.9.2009
・Tomcat 9.0.69
・openjdk version "17.0.5" 2022-10-18 LTS
・Apache Maven 3.8.6
