访问 Wicket 应用程序时出现 AbstractMethodError(jboss 服务器)

AbstractMethodError when accessing Wicket Application (jboss server)

出现的错误是:

19:09:30,077 ERROR [[default]] Servlet.service() for servlet default threw exception java.lang.AbstractMethodError: org.apache.catalina.connector.RequestFacade.isAsyncStarted()Z

我已经检查了几个关于这个主题的堆栈溢出帖子,但都参考了 "NoClassDefFoundError" 的 isAsyncStarted()Z。我处于停滞状态,因为当我尝试访问 localhost:8080/appname/ 时会抛出此异常。

我读到 javax.servlet-api-3.1.0.jar 可能是问题所在,但我不确定为什么我的错误与其他错误不同。

我知道这很含糊,但我想有人遇到过 wicket servlet 的这个问题。

我是否缺少一些使用 Wicket/Jboss/Spring 的重要配置? (如果需要,我可以提供更多信息)

完整堆栈跟踪:

    19:09:30,077 ERROR [[default]] Servlet.service() for servlet default threw exception
    java.lang.AbstractMethodError: org.apache.catalina.connector.RequestFacade.isAsyncStarted()Z
        at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:234)
        at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:284)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
        at java.lang.Thread.run(Unknown Source)

Wicket 7 依赖于 Servlets 3,您的类路径中似乎有一个旧版本。

您需要升级到 Tomcat 7 for servlet API 3 或 Tomcat 8 for servlet API 3.1.不得 将任何 servlet API jar 打包到您的 WAR。

更新:

你不能在 JBoss AS 4 上 运行 它。你至少需要 JBoss AS 7 或 EAP 6 或 WildFly 8。