我做了一个关于 Spring 工具套装的项目。该项目在本地嵌入的 tomcat 服务器中运行良好。但是,当我将 war 文件部署到外部 tomcat 服务器 webapps 文件夹时,我无法从 tomcat 管理器运行该项目。 当我单击开始时,它显示两个错误: FAIL - Application at context path [/payemntmodule] could not be started
FAIL - 遇到异常 [org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/paymentmodule]]]
以下是我的项目的详细信息:
java版本
java --version
openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
tomcat.service [Service]
Type=forking
Environment=JAVA_HOME= /usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment=CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC
Environment=JAVA_OPTS= -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
[![/opt/tomcat/webapps][1]][1][![部署war文件到tomcat管理器][2]][2]
[![webapps的文件权限][3]][3]
错误:
FAIL - Application at context path [/paymentmodule] could not be started
FAIL - Encountered exception [org.apache.catalina.LifecycleException: Failed to start
component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/paymentmodule]]]
[![Tomcat 管理器出错][4]][4]日志:
[![tomcat.log][5]][5]
manager.log
[![manager.log][6]][6]
[![manager.log][7]][7]
[![manager.log][8]][8]
最佳答案
这是因为您的应用程序不知道它是由外部 tomcat 调用的。
需要将范围更改为提供,在 pom 中添加并检查
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
关于将war文件部署到webapps后,Java项目未从tomcat管理器在tomcat服务器上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69136019/