Wicket 9 和 Tomcat 10 无法投射 jakarta.servlet.Filter

MAD*_*vid 7 wicket

我正在尝试将 Wicket 项目“快速入门”与 Netbeans 11、Java 11、Tomcat 10、Wicket 9 和 Ubuntu 18.04 一起使用。

当我安装 war 包并启动它时,它抛出:20-May-2020 09:23:37.067 GRAVE [] org.apache.catalina.core.StandardContext.filterStart Exception at start [wicket.quickstart] java.lang.ClassCastException :类 org.apache.wicket.protocol.http.WicketFilter 不能转换为类 jakarta.servlet.Filter(org.apache.wicket.protocol.http.WicketFilter 在加载器 org.apache.catalina.loader.ParallelWebappCl 的未命名模块中*assLoader")

有没有人以前见过这个问题,如果是这样,我可以做些什么来解决这个问题?

非常感谢您的回答。

mar*_*n-g 11

问题是 Tomcat 10 使用jakarta.**包(Jakarta EE 9),而 Wicket 9.x 仍然基于javax.**包(Java EE 8)。

解决方法是:

  1. 使用 Tomcat 9.x
  2. 使用https://github.com/apache/tomcat-jakartaee-migration将 Wicket 应用程序(.war 文件)从 javax 迁移到雅加达
  3. javax.**基于的应用程序部署到$TOMCAT10_HOME/webapps-javaee/文件夹中。jakarta.**Tomcat会自动迁移到它。


sve*_*ier 4

暂时不要使用 Tomcat 10,它可以与新的 jakarta 软件包配合使用。

改为切换到版本 9。