質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

2回答

8147閲覧

SpringBootのWarをTomcatでデプロイすると404エラーになる

eleele28

総合スコア18

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2022/11/30 11:48

編集2022/12/01 02:36

実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eleele28

2022/12/01 01:22 編集

404エラー発生時における、TomcatのCatalina.out エラーログを以下に示します。 (スタックトレース部の文字数が多いため3つに分割します。) エラーログ その1 30-Nov-2022 17:24:38.388 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/apache-tomcat-9.0.69/webapps/HelloSpring-0.0.1-SNAPSHOT.war] 30-Nov-2022 17:24:38.401 SEVERE [Catalina-utility-1] org.apache.catalina.startup.ContextConfig.beforeStart Exception fixing docBase for context [/HelloSpring-0.0.1-SNAPSHOT] java.util.zip.ZipException: zip END header not found at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1469) at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1477) at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1315) at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1277) at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:709) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:243) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:172) at java.base/java.util.jar.JarFile.<init>(JarFile.java:347) at java.base/sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:103) at java.base/sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:72) at java.base/sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:168) at java.base/sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:131) at java.base/sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:92) at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:128) at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:820) at org.apache.catalina.startup.ContextConfig.beforeStart(ContextConfig.java:959) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:182) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1023) at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1910) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:824) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474) at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1666) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1159) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1362) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1366) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1344) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833)
eleele28

2022/12/01 01:22

エラーログ その2 30-Nov-2022 17:24:38.412 SEVERE [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [/opt/apache-tomcat-9.0.69/webapps/HelloSpring-0.0.1-SNAPSHOT.war] java.lang.IllegalStateException: Error starting child at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:729) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1023) at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1910) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:824) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474) at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1666) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1159) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1362) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1366) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1344) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.WarResourceSet@10b1e794] at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173) at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:742) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4881) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5014) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) ... 24 more Caused by: java.lang.IllegalArgumentException: java.io.IOException: java.lang.reflect.InvocationTargetException at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:143) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) ... 31 more Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:209) at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:240) at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140) ... 32 more Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.GeneratedConstructorAccessor7.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:206) ... 34 more Caused by: java.util.zip.ZipException: zip END header not found at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1469) at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1477) at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1315) at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1277) at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:709) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:243) at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:172) at java.base/java.util.jar.JarFile.<init>(JarFile.java:347) ... 39 more
eleele28

2022/12/01 01:22

エラーログ その3 30-Nov-2022 17:24:38.414 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/apache-tomcat-9.0.69/webapps/HelloSpring-0.0.1-SNAPSHOT.war] has finished in [27] ms 30-Nov-2022 17:24:58.419 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.undeploy Undeploying context [/HelloSpring-0.0.1-SNAPSHOT] 30-Nov-2022 17:24:58.424 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/apache-tomcat-9.0.69/webapps/HelloSpring-0.0.1-SNAPSHOT.war] 30-Nov-2022 17:24:58.582 WARNING [Catalina-utility-2] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used. 30-Nov-2022 17:24:59.593 INFO [Catalina-utility-2] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 30-Nov-2022 17:24:59.597 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/apache-tomcat-9.0.69/webapps/HelloSpring-0.0.1-SNAPSHOT.war] has finished in [1,174] ms 30-Nov-2022 17:25:07.598 INFO [http-nio-8080-exec-15] org.apache.catalina.core.StandardContext.reload Reloading Context with name [/HelloSpring-0.0.1-SNAPSHOT] has started 30-Nov-2022 17:25:07.629 WARNING [http-nio-8080-exec-15] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used. 30-Nov-2022 17:25:08.495 INFO [http-nio-8080-exec-15] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 30-Nov-2022 17:25:08.498 INFO [http-nio-8080-exec-15] org.apache.catalina.core.StandardContext.reload Reloading Context with name [/HelloSpring-0.0.1-SNAPSHOT] is completed
YT0014

2022/12/01 15:09

ローカルにてhttp://localhost:8080/helloにアクセスした場合は、どうなるか、ご確認ください。
eleele28

2022/12/02 01:50

Spring Tool Suite上でSpringBootアプリとして起動し、http://localhost:8080/hello にアクセスしてみました。 http://localhost:8080/ にアクセスした時と同じ、index.htmlが正常に表示されました。 なお、さらにお試しとして、ローカルPC上にtomcat(VPSにインストールしたのと同バージョンのWindows版)をインストールし、ローカルPCのtomcat上でデプロイして http://localhost:8080/HelloSpring-0.0.1-SNAPSHOT/hello にアクセスしてみましたが、VPSで試したときと全く同じく404エラーでした。 まとめますと、以下の通りとなります。 SpringToolSuite上で実行 ⇒ 表示される VPSのtomcat上でデプロイ ⇒ 404 ローカルPCのtomcat上でデプロイ ⇒ 404
YT0014

2022/12/02 03:53 編集

Tomcatでのアクセスログをご確認ください。 /index.html (HelloSpring-0.0.1-SNAPSHOTがない、ルート直下)へのアクセスになっていませんか?
eleele28

2022/12/02 04:14

ご回答ありがとうございます。 アクセスログを確認しました。 VPS、ローカルPC共々、「 /HelloSpring-0.0.1-SNAPSHOT/hello」へアクセスしているように見えます。 ↓ VPS上の404アクセスログ ↓(IPは伏字にしてます) 153.xxx.xxx.xxx - - [01/Dec/2022:16:06:50 +0900] "GET /HelloSpring-0.0.1-SNAPSHOT/hello HTTP/1.1" 404 921 153.xxx.xxx.xxx - - [01/Dec/2022:16:06:56 +0900] "GET /HelloSpring-0.0.1-SNAPSHOT/hello HTTP/1.1" 404 921 ↓ ローカルPC上の404アクセスログ ↓ 0:0:0:0:0:0:0:1 - - [01/Dec/2022:17:33:23 +0900] "GET /HelloSpring-0.0.1-SNAPSHOT/hello HTTP/1.1" 404 937
YT0014

2022/12/02 09:57

Tomcatにマッピング情報が正常に渡っていないように見えます。 Tomcat内のwarが展開されたフォルダを調べ、WEB-INFなどが正常に設定されているか、確認されることをお勧めします。
eleele28

2022/12/02 12:30

ご回答ありがとうございます。 WEB-INFのフォルダ構造を調べてみました。 「web.xml」がありませんが、SpringBootアプリは無くて正しい認識です。 ↓ フォルダツリー ↓ D:\APACHE-TOMCAT\WEBAPPS\HELLOSPRING-0.0.1-SNAPSHOT\WEB-INF │ classpath.idx │ layers.idx │ ├─classes │ │ application.properties │ │ │ ├─com │ │ └─example │ │ └─demo │ │ │ App.class │ │ │ │ │ └─controller │ │ HelloController.class │ │ │ └─static │ index.html │ ├─lib │ jackson-annotations-2.14.1.jar │ jackson-core-2.14.1.jar │ jackson-databind-2.14.1.jar │ jackson-datatype-jdk8-2.14.1.jar │ jackson-datatype-jsr310-2.14.1.jar │ jackson-module-parameter-names-2.14.1.jar │ jakarta.annotation-api-2.1.1.jar │ jul-to-slf4j-2.0.4.jar │ log4j-api-2.19.0.jar │ log4j-to-slf4j-2.19.0.jar │ logback-classic-1.4.5.jar │ logback-core-1.4.5.jar │ micrometer-commons-1.10.2.jar │ micrometer-observation-1.10.2.jar │ slf4j-api-2.0.4.jar │ snakeyaml-1.33.jar │ spring-aop-6.0.2.jar │ spring-beans-6.0.2.jar │ spring-boot-3.0.0.jar │ spring-boot-autoconfigure-3.0.0.jar │ spring-boot-jarmode-layertools-3.0.0.jar │ spring-context-6.0.2.jar │ spring-core-6.0.2.jar │ spring-expression-6.0.2.jar │ spring-jcl-6.0.2.jar │ spring-web-6.0.2.jar │ spring-webmvc-6.0.2.jar │ └─lib-provided tomcat-embed-core-10.1.1.jar tomcat-embed-el-10.1.1.jar tomcat-embed-websocket-10.1.1.jar
YT0014

2022/12/02 14:46

ご提示いただいたツリーですが、HelloController.classのあるフォルダは正しいでしょうか? SpringToolSuite上の配置と比べてみてください。
eleele28

2022/12/05 02:44

ご回答ありがとうございます。 すみません、上記のツリーでは無駄なスペースが自動削除されてしまっているため、正しく伝わっておりませんでした。 画像にて、フォルダツリーとSTS上の配置の比較をしてみました。 https://uploda1.ysklog.net/uploda/732db41045.png HelloController.classのあるフォルダは\WEB-INF\classes\com\example\demo\controllerとなっており、正しいパスに配置されているように見えます。 実際にSTSのワークスペース上のディレクトリ構造とも比べてみました。 ↓ワークスペース上のディレクトリ構造 https://uploda1.ysklog.net/uploda/1092632079.png warを展開したフォルダ構造と比べると、index.htmlの場所が違うようにも見えます。 (war出力する際の設定などで操作できるのでしょうか…?)
YT0014

2022/12/05 10:54

とりあえず、Tomcat側の展開されたディレクトリで、STSと同じ場所にコピーしてみては? また、HelloController#hello()内でログ出力などを行い、呼ばれているかを確認。 併せて、Tomcatの/HelloSpring-0.0.1-SNAPSHOT/index.html へのアクセスを確認。 その他、思いつく方法を試して、原因の究明を進めてください。
guest

回答2

0

直感で答えます。
Eclipse等のIDEでは動くが、デプロイで動かない場合はこれがほとんどです。
IDE上ではEmbededされたTomcat10系が動いています。

もし、Spring Boot3系を利用しているなら。。。

●サーバ側
OS:CentOS 7.9.2009

Tomcat 9.0.69 // このVersionは10系でないとダメでは?

・openjdk version "17.0.5" 2022-10-18 LTS
・Apache Maven 3.8.6

投稿2023/01/18 19:22

Jack99

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ログのエラーの最初が「java.util.zip.ZipException: zip END header not found」となっていますので、warファイル、または、その中のjarファイルに問題があるかと思います。

SpringBootアプリを作る際に[zip END header not found]で正常に読み込まれない(teratail)

投稿2022/12/01 03:21

YT0014

総合スコア1708

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eleele28

2022/12/01 08:25

webappsフォルダから一旦、tomcatによって解凍されたフォルダを削除し、新たに生成したwarファイルを置き直してtomcatを再起動してみました。 解凍のエラーメッセージは記録されなくなりました。 しかし、依然として404が発生したままです。 org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used. 解凍時に上記のwarningが出ているため、あえて言うならここでしょうか…? ⇓tomcat再起動時のCatalinaログ⇓ 01-Dec-2022 17:16:27.020 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.69 01-Dec-2022 17:16:27.026 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Nov 9 2022 18:43:47 UTC 01-Dec-2022 17:16:27.026 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.69.0 01-Dec-2022 17:16:27.026 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 01-Dec-2022 17:16:27.026 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.10.0-1160.24.1.el7.x86_64 01-Dec-2022 17:16:27.027 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 01-Dec-2022 17:16:27.027 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/lib/jvm/zulu17-ca 01-Dec-2022 17:16:27.027 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.5+8-LTS 01-Dec-2022 17:16:27.028 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Azul Systems, Inc. 01-Dec-2022 17:16:27.028 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /opt/apache-tomcat-9.0.69 01-Dec-2022 17:16:27.028 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /opt/apache-tomcat-9.0.69 01-Dec-2022 17:16:27.044 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED 01-Dec-2022 17:16:27.044 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED 01-Dec-2022 17:16:27.045 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED 01-Dec-2022 17:16:27.045 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED 01-Dec-2022 17:16:27.045 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 01-Dec-2022 17:16:27.045 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/opt/apache-tomcat/conf/logging.properties 01-Dec-2022 17:16:27.045 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 01-Dec-2022 17:16:27.045 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 01-Dec-2022 17:16:27.046 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 01-Dec-2022 17:16:27.046 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 01-Dec-2022 17:16:27.046 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs= 01-Dec-2022 17:16:27.046 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/opt/apache-tomcat 01-Dec-2022 17:16:27.046 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/apache-tomcat 01-Dec-2022 17:16:27.046 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/apache-tomcat/temp 01-Dec-2022 17:16:27.048 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib] 01-Dec-2022 17:16:27.396 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] 01-Dec-2022 17:16:27.423 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [666] milliseconds 01-Dec-2022 17:16:27.469 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 01-Dec-2022 17:16:27.469 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.69] 01-Dec-2022 17:16:27.489 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/apache-tomcat-9.0.69/webapps/HelloSpring-0.0.1-SNAPSHOT_.war] 01-Dec-2022 17:16:27.821 WARNING [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used. 01-Dec-2022 17:16:29.052 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 01-Dec-2022 17:16:29.114 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/apache-tomcat-9.0.69/webapps/HelloSpring-0.0.1-SNAPSHOT_.war] has finished in [1,624] ms 01-Dec-2022 17:16:29.114 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/apache-tomcat-9.0.69/webapps/HelloSpring-0.0.1-SNAPSHOT.war] 01-Dec-2022 17:16:29.259 WARNING [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used. 01-Dec-2022 17:16:30.148 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 01-Dec-2022 17:16:30.153 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/apache-tomcat-9.0.69/webapps/HelloSpring-0.0.1-SNAPSHOT.war] has finished in [1,038] ms 01-Dec-2022 17:16:30.153 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/apache-tomcat-9.0.69/webapps/HelloSpring.war] 01-Dec-2022 17:16:30.287 WARNING [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used. 01-Dec-2022 17:16:31.138 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 01-Dec-2022 17:16:31.143 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/apache-tomcat-9.0.69/webapps/HelloSpring.war] has finished in [989] ms 01-Dec-2022 17:16:31.143 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.69/webapps/host-manager] 01-Dec-2022 17:16:31.172 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.69/webapps/host-manager] has finished in [29] ms 01-Dec-2022 17:16:31.172 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.69/webapps/src] 01-Dec-2022 17:16:31.185 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.69/webapps/src] has finished in [13] ms 01-Dec-2022 17:16:31.186 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.69/webapps/manager] 01-Dec-2022 17:16:31.204 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.69/webapps/manager] has finished in [19] ms 01-Dec-2022 17:16:31.204 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.69/webapps/ROOT] 01-Dec-2022 17:16:31.218 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.69/webapps/ROOT] has finished in [14] ms 01-Dec-2022 17:16:31.218 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.69/webapps/docs] 01-Dec-2022 17:16:31.231 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.69/webapps/docs] has finished in [13] ms 01-Dec-2022 17:16:31.232 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.69/webapps/examples] 01-Dec-2022 17:16:31.380 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.69/webapps/examples] has finished in [148] ms 01-Dec-2022 17:16:31.385 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 01-Dec-2022 17:16:31.398 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [3974] milliseconds
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問