微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Jersey 3 和 Tomcat 10 的 Hello World 问题/404

如何解决使用 Jersey 3 和 Tomcat 10 的 Hello World 问题/404

尝试使用 IntelliJ 作为 IDE 使用 Jersey 和 Tomcat 10 执行 Hello World。不幸的是,我会得到一个 404 - 似乎 servlet 没有加载。看了几个教程,都找不到原因。此外,我在 web.xml 中收到一条奇怪的错误消息...

pom.xml

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>3.0.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-server</artifactId>
    <version>3.0.1</version>
</dependency>
<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>8.0.1</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

web.xml(xml-file 是必须的,我不能使用 ApplicationConfig-class)

    <servlet>
        <servlet-name>Jersey REST Service</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>com.myapp.hello</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey REST Service</servlet-name>
        <url-pattern>/api/*</url-pattern>
    </servlet-mapping>

此外,我在 servlet-class 行收到此错误消息:'org.glassfish.jersey.servlet.ServletContainer' is not assignable to 'javax.servlet.Servlet,jakarta.servlet.Servlet' 我只发现了 https://youtrack.jetbrains.com/issue/IDEA-86833 问题,但似乎已解决

控制器/端点

package com.myapp.hello;
@Path("/hello")
public class DataController  {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String sayPlainTextHello() {
        return "Hello Jersey Plain";
    }
}

这应该部署 servlet 并使其可通过具有以下 URL 的 GET 请求访问:http://localhost:8080/app/api/hello - 但得到 404 代替...

在这里做错了什么?代码看起来不错,我在服务器日志中没有看到任何内容

感谢您的任何意见!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。