首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Servlet类org.restlet.ext.servlet.ServerServlet不是jakarta.servlet.Servlet

Servlet类org.restlet.ext.servlet.ServerServlet不是jakarta.servlet.Servlet
EN

Stack Overflow用户
提问于 2020-09-29 10:26:04
回答 2查看 1.9K关注 0票数 5

是什么导致了这个错误?

代码语言:javascript
复制
    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$2 (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插件的web应用程序

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-29 10:59:19

jakarta.servlet.UnavailableException: Servlet类。不是jakarta.servlet.Servlet

jakarta.servlet.Servlet是Servlet版本5.0的一部分,而后者又是Jakarta版本9的一部分。因此,这只能意味着在[...]中指定的servlet类不是针对Servlet版本5.0编译的,而是针对一个旧版本编译的。

你有两个选择:

  1. [...]中指定的servlet类升级到与Servlet版本5.0兼容的类。
  2. 或者,将servlet容器从Servlet版本5.0降到以前的版本,至少与[...]中指定的Servlet类的目标servlet版本相匹配。

技术原因是,在从Java/Jakarta 8到Jakarta 9的步骤中,所有javax.*包都被重命名为jakarta.*包。因此,从Jakarta 9开始就不再有向后兼容性了。

当我们将上述事实转换为特定情况时,您唯一的选择是将Jetty容器降级为Servlet4.0兼容版本。这是因为第三方库"Restlet“目前根本没有兼容Servlet5.0的版本。根据Jetty的版本表,Jetty11.x是Jakarta 9的目标,所以您需要JettyVersion10.x或更高版本。

或者,您可以完全放弃Restlet,转而使用泽西岛。它目前有一个与Jakarta 9兼容的版本。

另请参阅:

票数 9
EN

Stack Overflow用户

发布于 2021-12-11 00:18:41

我试图在Wildfly服务器中运行一个Maven应用程序

我安装了20.0.1.Final,这是雅加达之前的最后一个版本

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64117697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档