Servlet class org.restlet.ext.servlet.ServerServlet 不是 jakarta.servlet.Servlet
Servlet class org.restlet.ext.servlet.ServerServlet is not a jakarta.servlet.Servlet
可能导致此错误的原因是什么?
Caused by: jakarta.servlet.UnavailableException: Servlet class org.restlet.ext.servlet.ServerServlet is not a jakarta.servlet.Servlet
at org.eclipse.jetty.servlet.ServletHolder.checkServletType (ServletHolder.java:499)
at org.eclipse.jetty.servlet.ServletHolder.doStart (ServletHolder.java:377)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:96)
at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize (ServletHandler.java:699)
at java.util.stream.SortedOps$SizedRefSortingSink.end (SortedOps.java:357)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:474)
at java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining (StreamSpliterators.java:312)
at java.util.stream.Streams$ConcatSpliterator.forEachRemaining (Streams.java:735)
at java.util.stream.ReferencePipeline$Head.forEach (ReferencePipeline.java:658)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:724)
我是 运行 来自 mvn jetty:run
插件的网络应用程序
jakarta.servlet.UnavailableException: Servlet class [...] is not a jakarta.servlet.Servlet
jakarta.servlet.Servlet
是 Servlet API 版本 5.0 的一部分,后者又是 Jakarta EE 版本 9 的一部分。因此,这只能意味着 class 中指定的 servlet [=] 11=] 不是针对 Servlet API 5.0 版编译的,而是针对旧版本编译的。
您有 2 个选择:
将 [...]
中指定的 servlet class 升级为 Servlet API 版本 5.0 兼容。
或者,将 servlet 容器从 Servlet API 版本 5.0 降级到以前的版本,至少是匹配目标 Servlet API 版本的 servlet [=55] =] 在 [...]
.
中指定
技术原因是,在从 Java/Jakarta EE 8 到 Jakarta EE 9 的步骤中,所有 javax.*
包都已重命名为 jakarta.*
包。因此,自 Jakarta EE 9 以来,不再向后兼容。
当我们将上述事实转化为您的具体情况时,您唯一的选择是将 Jetty servlet 容器降级为 Servlet 4.0 兼容版本。这是因为第 3 方库“Restlet”目前根本没有可用的 Servlet 5.0 兼容版本。根据 Jetty 的版本 table,Jetty 11.x 是针对 Jakarta EE 9 的,因此您需要 Jetty 版本 10.x 或更早的版本。
或者,您可以完全放弃 Restlet,改用 Jersey。它目前有可用的 Jakarta EE 9 兼容版本。
另请参阅:
- Jetty versions
- Getting java.lang.ClassNotFoundException: jakarta.servlet.Filter on Maven/Jersey web service while running on Tomcat 9
我试图 运行 Wildfly 服务器中的 Maven 应用程序
我安装了20.0.1.Final,Jakarta
之前的最后一个版本
可能导致此错误的原因是什么?
Caused by: jakarta.servlet.UnavailableException: Servlet class org.restlet.ext.servlet.ServerServlet is not a jakarta.servlet.Servlet
at org.eclipse.jetty.servlet.ServletHolder.checkServletType (ServletHolder.java:499)
at org.eclipse.jetty.servlet.ServletHolder.doStart (ServletHolder.java:377)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:96)
at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize (ServletHandler.java:699)
at java.util.stream.SortedOps$SizedRefSortingSink.end (SortedOps.java:357)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:474)
at java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining (StreamSpliterators.java:312)
at java.util.stream.Streams$ConcatSpliterator.forEachRemaining (Streams.java:735)
at java.util.stream.ReferencePipeline$Head.forEach (ReferencePipeline.java:658)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:724)
我是 运行 来自 mvn jetty:run
插件的网络应用程序
jakarta.servlet.UnavailableException: Servlet class [...] is not a jakarta.servlet.Servlet
jakarta.servlet.Servlet
是 Servlet API 版本 5.0 的一部分,后者又是 Jakarta EE 版本 9 的一部分。因此,这只能意味着 class 中指定的 servlet [=] 11=] 不是针对 Servlet API 5.0 版编译的,而是针对旧版本编译的。
您有 2 个选择:
将
[...]
中指定的 servlet class 升级为 Servlet API 版本 5.0 兼容。或者,将 servlet 容器从 Servlet API 版本 5.0 降级到以前的版本,至少是匹配目标 Servlet API 版本的 servlet [=55] =] 在
中指定[...]
.
技术原因是,在从 Java/Jakarta EE 8 到 Jakarta EE 9 的步骤中,所有 javax.*
包都已重命名为 jakarta.*
包。因此,自 Jakarta EE 9 以来,不再向后兼容。
当我们将上述事实转化为您的具体情况时,您唯一的选择是将 Jetty servlet 容器降级为 Servlet 4.0 兼容版本。这是因为第 3 方库“Restlet”目前根本没有可用的 Servlet 5.0 兼容版本。根据 Jetty 的版本 table,Jetty 11.x 是针对 Jakarta EE 9 的,因此您需要 Jetty 版本 10.x 或更早的版本。
或者,您可以完全放弃 Restlet,改用 Jersey。它目前有可用的 Jakarta EE 9 兼容版本。
另请参阅:
- Jetty versions
- Getting java.lang.ClassNotFoundException: jakarta.servlet.Filter on Maven/Jersey web service while running on Tomcat 9
我试图 运行 Wildfly 服务器中的 Maven 应用程序
我安装了20.0.1.Final,Jakarta
之前的最后一个版本