带有 Tomcat 9 的 jakarta.servlet - 未找到问题 [重复]

2023-12-14

我有一个使用 eclipse 和 tomcat 9 服务器运行的应用程序。 当我运行应用程序时,它会在浏览器中打开 index.html 页面,但在索引页面内调用的 API 会出现 404 状态错误。

我尝试了各种 stackoverflow 页面上的多种操作,但似乎没有任何效果。

我有一个带有以下声明的 Httpservlet

@WebServlet("/api/modules")
public class ModuleController extends HttpServlet {
@Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
     // logic
}
}

即使我直接尝试点击 localhost:8080/application-context/api/modules 我也遇到同样的 404 错误。

另外我的应用程序没有 web.xml。

注意:该应用程序在其他人的系统上运行良好。

以下是 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>ch.bfh.ti</groupId>
    <artifactId>academia-02</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <properties>
        <!-- General properties -->
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- Version properties -->
        <servlet.version>5.0.0</servlet.version>
        <jackson.version>2.13.1</jackson.version>
        <postgresql.version>42.3.2</postgresql.version>
        <jetty.version>11.0.8</jetty.version>
        <h2.version>2.1.210</h2.version>
        <junit.version>5.8.2</junit.version>
        <rest-assured.version>4.5.0</rest-assured.version>

        <!-- Checkstyle properties -->
        <checkstyle.config.location>src/etc/checkstyle.xml</checkstyle.config.location>
        <checkstyle.header.file>src/etc/checkstyle-header.txt</checkstyle.header.file>
    </properties>

    <dependencies>
        <!-- Servlet dependencies -->
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>${servlet.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
            <version>${jackson.version}</version>
        </dependency>

        <!-- Database dependency -->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>${postgresql.version}</version>
        </dependency>

        <dependency>
            <groupId>com.wordnik</groupId>
            <artifactId>swagger-jaxrs_2.10</artifactId>
            <version>1.3.1</version>
            <scope>compile</scope>
        </dependency>

        <!-- Test dependencies -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-annotations</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>${h2.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>${rest-assured.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.2</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>3.0.0-M5</version>
                <executions>
                    <execution>
                        <id>integration-test</id>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.11.0</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>site</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.basedir}/target/site/images</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>${project.basedir}/src/site/markdown/images</directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>3.2.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.3.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>3.1.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>3.0.0-M5</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>3.1.2</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>checkstyle</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>

</project>

404错误参考:

HTTP Status 404 – Not Found

Type Status Report

Message The requested resource [/academia-02/api/modules] is not available

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

我也已经尝试过以下操作:

  • 更改tomcat版本
  • 添加 web.xml
  • clean 构建应用程序,然后在 tomcat 上运行
  • 检查生成的类是否在正确的位置包含 Servlet 类
  • 更新tomcat属性->切换位置
  • 更新 tomcat 属性 -> 服务器位置中的用户 tomcat 安装

您能告诉我在这里可以做什么吗?


您声明对 Servlet Spec 5.0 的依赖(并明确声明您正在使用 Jakarta servlet)。

因此,它是强制要求您使用 Tomcat 10 或更高版本。按声明/设计工作。没什么大不了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有 Tomcat 9 的 jakarta.servlet - 未找到问题 [重复] 的相关文章

随机推荐

  • 如何从另一个java程序中运行.jar文件?

    我有一个 jar 文件 可以在命令行上运行 java jar myFile jar argument1 我想将此 jar 的输出保存为另一个 java 程序中的字符串变量 我该怎么做 我尝试将 myFile jar 作为参考包含在我的程序中
  • 如何映射 Java 流中的 RuntimeExceptions 以从无效流元素中“恢复”

    想象一下 我正在构建一个库 它将接收整数流 而库代码所需要做的就是返回一个字符串流 其中包含数字的字符串表示形式 public Stream
  • 如何使用awk根据前两个字段找出第三个字段的最大值

    文件内容如下 333379266 834640619 88 333379280 834640621 99 333379280 834640621 66 333376672 857526666 99 333376672 857526666 7
  • 重用浏览器实例 puppeteer

    我想知道是否可以有一个 js 文件来打开浏览器实例 创建新页面 选项卡登录到网站 使用用户名 密码 并保持空闲状态 在第二个 js 文件中使用文件一个浏览器实例及其页面 1 js const puppeteer require puppet
  • 如何编写注释/方面以不进入方法但在给定条件为 false 时返回 null?

    我目前有一个要求 如果给定条件为 false 则需要从 100 个方法中返回 null 我正在考虑为此使用 Java Annotations 或 Spring Aspects 这样我就不必到处编写 if else 代码块 知道如何使用 Ja
  • 匹配键值模式正则表达式

    我正在制作一个键值解析器 其中输入字符串采用以下形式key value key2 value 键可以包含字符a z A Z and 0 9和值可以包含任何字符 但 and 需要以反斜杠为前缀 逗号用于分隔键值对 但在最后一对之后不需要 到目
  • 从 URL 中提取 TLD,并对每个 TLD 文件的域和子域进行排序

    我有一个包含数百万个网址的列表 我需要提取每个网址的 TLD 并为每个 TLD 创建多个文件 例如 收集所有以 com 作为 tld 的 url 并将其转储到 1 个文件中 将 edu tld 转储到另一个文件中 依此类推 此外 在每个文件
  • SignalR 无法启动连接

    我有一个 Angular 应用程序以及使用 SignalR 的 ASP NET Core 2 2 后端 启动连接时 我收到错误 Error Failed to complete negotiation with the server Err
  • 如何使用VBA获取google搜索的第一个搜索结果链接?

    在我的日常任务中 我目前必须搜索大量产品并收集有关这些产品的信息 所以我的想法是在谷歌上搜索产品 并通过从产品标题部分提取数据来从第一个搜索结果中获取信息 并对许多产品进行循环 到目前为止 我的代码如下 Sub SkuAutomation
  • 将 div 隐藏在其父项后面? [复制]

    这个问题在这里已经有答案了 div class content wrapper div class popup div class close div div div content wrapper 是相对定位的 包含所有页面内容 不仅仅是
  • grep 文件匹配特定列

    我只想保留其中的行results txt与中的 ID 匹配uniq txt基于第 3 列中的匹配results txt 通常我会使用grep f uniq txt results txt 但这并没有指定第 3 列 uniq txt 9606
  • CSS 中的 SVG DataURI 在 Firefox 中不起作用

    body background url data image svg xml utf8
  • 拉入 Mercurial 之前自动搁置(使用 TortoiseHG)?

    我不想提交一些已更改的文件 例如 web config 在拉取并更新到新的变更集之前 我必须将它们搁置起来 拉取和更新后 我必须取消搁置它们 我目前正在使用 TortoiseHG 有没有任何扩展可以自动执行此操作 我建议其他一些东西 您可以
  • 创建数组变量

    我想创建这种输出 var s1 Sony 7 Samsung 5 LG 8 这样我就可以用它来将我的图表作为变量传递 从我的ajax结果中得出 success function data code to extract the data v
  • C# 为所有可选参数提供值

    我正在读一本 C 书籍 正在阅读命名参数和可选参数一章 我读过一个项目符号 上面写着 如果存在多个可选参数并且指定了一个值 一 所有前面的可选参数也必须提供值 您能给我一个例子吗 因为我无法从代码中重现上述语句 以此方法签名为例 publi
  • 从使用 JWS 下载的 jar 文件中提取一些内容

    我试图从使用 java webstart 下载的 jar 文件中提取一些文件 下面的代码用于定位 jar 并启动文件系统 1 final ProtectionDomain domain this getClass getProtection
  • 如何在 UIView 中加载 xib 文件

    我一直在到处寻找 但到目前为止没有任何对我有用的东西 基本上我想要一个名为 rootView xib 的 xib 文件 在其中我想要一个 UIView 让我们称之为 containerView 它只占据屏幕的一半 所以会有常规视图和新视图
  • iframe 和父站点之间如何通信?

    iframe 中的网站不在同一个域中 但两者都是我的 我想在iframe和父站点 是否可以 对于不同的域 无法直接调用方法或访问 iframe 的内容文档 你必须使用跨文档消息传递 父级 gt iframe 例如在顶部窗口中 myIfram
  • Laravel 集团按月记录和总价

    您好 我正在尝试按月份对记录进行分组并对订单中的价格进行求和 我尝试过这样的事情 order Order select DB raw sum price as sums gt groupBy function date return Car
  • 带有 Tomcat 9 的 jakarta.servlet - 未找到问题 [重复]

    这个问题在这里已经有答案了 我有一个使用 eclipse 和 tomcat 9 服务器运行的应用程序 当我运行应用程序时 它会在浏览器中打开 index html 页面 但在索引页面内调用的 API 会出现 404 状态错误 我尝试了各种