严重:Web 应用程序 [/restapp] 中的 Servlet [Jersey Web Application] 引发了 load() 异常

2024-04-14

这是我的 REST API 项目。我不知道这个错误是什么。我正在尝试从两天开始解决这个错误,现在我已经筋疲力尽了,有人可以帮助我吗

网页正在加载,但控制台中显示此错误

 SEVERE: Servlet [Jersey Web Application] in web application [/restapp] threw load() exception
java.lang.ClassNotFoundException: jakarta.servlet.Filter
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2418)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:865)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1334)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:539)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:520)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1042)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:983)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4864)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
    at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
    at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)

Jun 26, 2020 6:33:03 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Jun 26, 2020 6:33:03 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in [1,110] milliseconds

这是我的 pom.xml 文件

<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>shrikant</groupId>
    <artifactId>restapp</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>restapp</name>

    <build>
        <finalName>restapp</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.5.1</version>
                <inherited>true</inherited>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.glassfish.jersey</groupId>
                <artifactId>jersey-bom</artifactId>
                <version>${jersey.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet-core</artifactId>
            <!-- use the following artifactId if you don't need servlet 2.x compatibility -->
            <!-- artifactId>jersey-container-servlet</artifactId -->
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.inject</groupId>
            <artifactId>jersey-hk2</artifactId>
        </dependency>
        <!-- uncomment this to get JSON support
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-binding</artifactId>
        </dependency>
        -->
    </dependencies>
    <properties>
        <jersey.version>3.0.0-M6</jersey.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>

这是我的 web.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- This web.xml file is not required when using Servlet 3.0 container,
     see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html -->
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>shrikant.restapp</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
</web-app>

索引.jsp

<?xml version="1.0" encoding="UTF-8"?>
<!-- This web.xml file is not required when using Servlet 3.0 container,
     see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html -->
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>shrikant.restapp</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
</web-app>

单击泽西岛资源后 抛出这个错误

最后这是我的 MyResource.java 文件

package shrikant.restapp;

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;

/**
 * Root resource (exposed at "myresource" path)
 */
@Path("myresource")
public class MyResource {

    /**
     * Method handling HTTP GET requests. The returned object will be sent
     * to the client as "text/plain" media type.
     *
     * @return String that will be returned as a text/plain response.
     */
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getIt() {
        return "Got it!";
    }
}

Tomcat 9 使用javax.servlet.Filter。 Jersey 3.x,Jakarta EE 9 的一部分,取决于jakarta基于API包。jakarta.servlet.FilterTomcat 10 中可用。

如果您想使用 Tomcat 9,请使用 Jersey 2.x。如果您想将 Jersey 3.x 与 Servlet 一起使用,则需要使用实现 Servlet 5 API 的 servlet 容器,例如雄猫 10、码头 11、玻璃鱼 6。

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

严重:Web 应用程序 [/restapp] 中的 Servlet [Jersey Web Application] 引发了 load() 异常 的相关文章

随机推荐

  • 如何在 JTSAGE 日期选择器中仅显示日期之前

    I use Jtsage http dev jtsage com jQM DateBox2 我的移动应用程序 jquery mobile 和phonegap 中的日期选择器 我只想显示今天和今天之前的日期 hide future dates
  • 如何逐像素绘制任意方向的椭圆?

    我必须逐像素绘制任意大小和方向的椭圆 绘制一个长轴和短轴与 x 轴和 y 轴对齐的椭圆似乎很容易 但将椭圆旋转任意角度似乎更棘手 最初 我认为绘制未旋转的椭圆并对每个点应用旋转矩阵可能会起作用 但似乎这可能会导致舍入错误 而且我需要相当高的
  • C 中函数指针的初始化

    我有这个功能 uint8 t Authorization getRole char const userId UsertoRole T const roleTable 在主程序中我有 given Role Authorization get
  • 如何在另一个类中访问一个类的成员函数?

    我无法访问另一个类中一个类的成员函数 尽管我可以在 main 中很好地访问它 我一直在尝试扭转局面 但无法理解我做错了什么 任何帮助 将不胜感激 这是生成错误的行 cout lt lt n nRetrieve key from inside
  • Github 存储库 - LockFile 存在

    我最近尝试通过 GitHub Desktop 提交到我的存储库 并被告知有一个锁定文件阻止我这样做 我不记得上传过这个锁定文件 也不知道它来自哪里 可能有其他人同时推动吗 否则 只需尝试存储更改 移动到另一个分支 返回 应用存储并再次推送
  • Unity / RIDER:乘法运算的顺序效率低下?

    骑手 IDE 告诉我以下操作效率低下 transform Translate moveDirection speed Time smoothDeltaTime 并想将其重写为 transform Translate Time smoothD
  • 在javascript中获取元素的xpath

    我正在使用 javascript 进行开发 我需要获取单击的元素的 xpath 我知道为了获得 id 我们可以这样做 element onclick function event var target id event target id
  • 为什么 schema_translate_map 不更改架构?

    我正在尝试使用schema translate map更改架构 Base declarative base class DataAccessLayer def init self conn string mysql mysqlconnect
  • 实体框架 7 SaveChanges

    有没有办法注册一个回调 该回调将在 EF7 中的模型保存到数据库之前调用 我想要做的是设置所有模型上的 ModifiedBy 和 ModifiedDate 属性 我不太热衷于在每次保存之前手动执行此操作 因此我正在寻找一些更通用和自动的方法
  • 为什么https只能用于登录?

    性能是唯一的问题吗 不能在整个用户会话期间使用 https 连接吗 显然重定向发生的情况较少 我发现这个相关问题http 与 https 性能对比 https stackoverflow com questions 149274 http
  • SHTML 的目的和独特性是什么?

    最近 当我看到一个带有 shtml 扩展名的网站时 我开始了解 SHTML SHTML 的目的是什么 它与 HTML 和 DHTML 有何不同 SHTML 是一种文件扩展名 可让 Web 服务器知道应使用服务器端包含 SSI 来处理该文件
  • 我可以使用 adb shell 向我的应用程序发送命令吗

    我想找到一种方法来创建可以使用 adb shell 或类似命令发送到我的应用程序的命令 这样我就可以对程序进行一些小的更改 而不必每次更改任何内容时都重新加载应用程序 有没有办法打开 adb shell 并向正在运行的应用程序发送命令 如果
  • WCF回调接口-谁关闭通道

    我在关闭回调 双工通信通道时遇到问题 疑问 这是我的原型 WCF 接口 ServiceContract CallbackContract typeof IMyInterfaceCallback public interface IMyInt
  • 如何使用 rhino 导入其他 javascript 文件

    我一生都无法弄清楚如何在Rhino下的javascript中导入javascript文件 基本上 我想做的就是导入 some file js 并能够使用其中范围内的内容 我一直在尝试弄乱 Context currentContext com
  • Egit - 创建分支时正确设置远程跟踪

    当我使用 EGit 从远程分支创建新分支时 我得到了错误的远程跟踪设置 我从远程分支 refs heads master 创建本地分支 feature1 并立即推送到上游 在我的 git config 文件中配置以下远程跟踪 branch
  • 如何重置对模拟类方法的期望?

    抱歉 如果这很简单 我对 ruby 和 rspec 都是新手 似乎 rspec 是一个非常 晦涩 的世界 特别是来自 net 背景时 在我的 规范 中 我有 before each do expect File to receive exi
  • 将包含无效字符的嵌套字段从 Spark 2 导出到 Parquet [重复]

    这个问题在这里已经有答案了 我正在尝试使用 Spark 2 0 2 将 JSON 文件转换为镶木地板 JSON 文件来自外部源 因此架构在到达之前无法更改 该文件包含属性映射 在我收到文件之前 属性名称是未知的 属性名称包含不能在 parq
  • 树视图虚拟化

    我们正在尝试找到一种虚拟化的好方法TreeView 数据并不是真正的问题 因为它非常轻 每个项目大约 16 字节 问题是我们可能有数以万计的数据 尽管实际数据只占用 160 kb 内存 但树视图项目确实使用更多的内存 我们现在已经尝试使用
  • 如果 Address 嵌套在 User 中,为什么我必须保留这两个对象?

    我想更好地熟悉 JPA 所以我创建了一个非常简单的项目 我有一个用户类和一个地址类 看来我必须坚持两者 即使我将地址添加到我的用户类中 User import javax persistence import java util HashS
  • 严重:Web 应用程序 [/restapp] 中的 Servlet [Jersey Web Application] 引发了 load() 异常

    这是我的 REST API 项目 我不知道这个错误是什么 我正在尝试从两天开始解决这个错误 现在我已经筋疲力尽了 有人可以帮助我吗 网页正在加载 但控制台中显示此错误 SEVERE Servlet Jersey Web Applicatio