部署war文件后tomcat9容器出现404错误

问题描述 投票:0回答:1

我有这个 Dockerfile:

FROM tomcat:9.0-alpine
LABEL key="MyName"
ADD api.war /usr/local/tomcat/webapps/
EXPOSE 8080
CMD ["catalina.sh", "run"]

api.war 是简单的 Spring Boot 后端。适用于 java 19。使用

mvn clean package
部署 war 文件 我已经构建了图像
docker build -t api .
并运行了容器
docker run -p 80:8080 --name test_api api
一切都很成功。日志:

17-Aug-2023 21:55:54.340 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/9.0.2
17-Aug-2023 21:55:54.343 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Nov 25 2017 21:08:02 UTC
17-Aug-2023 21:55:54.343 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         9.0.2.0
17-Aug-2023 21:55:54.343 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
17-Aug-2023 21:55:54.343 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            5.15.90.1-microsoft-standard-WSL2
17-Aug-2023 21:55:54.343 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
17-Aug-2023 21:55:54.343 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/lib/jvm/java-1.8-openjdk/jre
17-Aug-2023 21:55:54.344 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_151-b12
17-Aug-2023 21:55:54.344 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
17-Aug-2023 21:55:54.344 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
17-Aug-2023 21:55:54.344 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
17-Aug-2023 21:55:54.344 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
17-Aug-2023 21:55:54.344 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
17-Aug-2023 21:55:54.345 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
17-Aug-2023 21:55:54.345 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
17-Aug-2023 21:55:54.345 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
17-Aug-2023 21:55:54.345 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
17-Aug-2023 21:55:54.345 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
17-Aug-2023 21:55:54.345 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
17-Aug-2023 21:55:54.345 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.16] using APR version [1.6.3].
17-Aug-2023 21:55:54.345 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
17-Aug-2023 21:55:54.345 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
17-Aug-2023 21:55:54.349 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.0.2n  7 Dec 2017]
17-Aug-2023 21:55:54.457 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
17-Aug-2023 21:55:54.479 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
17-Aug-2023 21:55:54.487 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
17-Aug-2023 21:55:54.491 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
17-Aug-2023 21:55:54.492 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 699 ms
17-Aug-2023 21:55:54.522 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
17-Aug-2023 21:55:54.523 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/9.0.2
17-Aug-2023 21:55:54.555 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/api.war]
17-Aug-2023 21:55:57.657 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.
17-Aug-2023 21:55:57.781 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/api.war] has finished in [3,225] ms
17-Aug-2023 21:55:57.782 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/ROOT]
17-Aug-2023 21:55:57.797 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/ROOT] has finished in [15] ms
17-Aug-2023 21:55:57.797 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/host-manager]
17-Aug-2023 21:55:57.829 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/host-manager] has finished in [32] ms
17-Aug-2023 21:55:57.830 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/manager]
17-Aug-2023 21:55:57.859 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/manager] has finished in [29] ms
17-Aug-2023 21:55:57.860 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/docs]
17-Aug-2023 21:55:57.875 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/docs] has finished in [15] ms
17-Aug-2023 21:55:57.876 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/examples]
17-Aug-2023 21:55:58.042 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/examples] has finished in [166] ms
17-Aug-2023 21:55:58.045 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
17-Aug-2023 21:55:58.061 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
17-Aug-2023 21:55:58.065 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 3572 ms

在 /webapps/ 的容器中我有 api.war 但是当点击 http://localhost:80/api 时,我得到了 404。

当我将该 api.war 文件部署到本地 tomcat 9 服务器时,它可以工作。 有什么问题??感谢您的帮助

我尝试指定tomcat镜像版本。更改java版本。更改war文件名。还有更多其他教程

java spring-boot docker tomcat http-status-code-404
1个回答
0
投票

我将tomcat docker镜像的版本更改为9.0.79。并且应用程序可以运行。

© www.soinside.com 2019 - 2024. All rights reserved.