我是 Maven 和构建 Java 项目的新手。所以我使用Maven构建了一个Java项目,并将WAR文件复制到webapps文件夹中。文件名是“print”,我将其复制到位于以下位置的Web应用程序中:/opt/homebrew/Cellar/tomcat/10.0.22/libexec/webapps
当我尝试打开:http://localhost:8080/print/ 时,我收到 HTTP 状态 404 – 未找到错误。
该路径在 Tomcat Web 应用程序管理器中可用:
我尝试遵循此处提供的一些指南,但没有任何效果。不知道是什么问题。
以下是pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.springhow.example</groupId>
<artifactId>hello-world</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>hello-world</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
从版本 10 开始,tomcat 发生了变化,开始支持 jakarta servlet 并从 javax 迁移。 所以我怀疑你的战争需要首先迁移。为此,他们已经提供了一套指南,您可以在他们的官方页面上阅读。
目前,
我的 war 文件在我的 PC 上运行 Tomcat 9 和 Java 11。
但是在服务器上运行时却出现404错误。服务器有 Tomcat 9 但运行 Java 8。
因此,即使 Tomcat 9 在 Java 8 上运行,您最终也会遇到错误。尤其是更新的库(Grails 5、servlet v.5 等)
将服务器升级到 Java 11 后,404 错误消失了。
我认为您不需要 Tomcat 10 和 JavaEE 功能来解决该问题。