从 tomcat6 升级到 tomcat7 出现错误 AbstractMethod Error

Upgrading from tomcat6 to tomcat7 giving errors AbstractMethod Error

我已将我的 Web 应用程序的 tomcat 版本从 tomcat6 升级到 tomcat7。单击按钮时,页面上会抛出 AbstractMethod 错误。

这是快照:

javax.servlet.ServletException: java.lang.AbstractMethodError
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:916)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:845)
    com.web.console.jsp.editCDTemplate_jsp._jspService(editCDTemplate_jsp.java:203)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
    org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
    org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    com.web.console.CharsetFilter.doFilter(CharsetFilter.java:16)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


root cause 

java.lang.AbstractMethodError
    javax.servlet.ServletRequestWrapper.isAsyncStarted(ServletRequestWrapper.java:396)
    com.web.console.jsp.editCDTemplate_jsp._jspService(editCDTemplate_jsp.java:166)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
    org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
    org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    com.web.console.CharsetFilter.doFilter(CharsetFilter.java:16)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

点击按钮时出现上述错误。只有一个按钮产生此错误。

编辑 在按下按钮时,应显示以下 jsp 但它会抛出上述异常。 代码片段

<console:page url="emptyPage.jsp"
       title="com.web.template">
  <console:menu>
  </console:menu>
  <console:header>
        <%if ( request.getParameter("mode").equals("edit") ) {%>
                <bean:message key="com.web.editTemplate"/>
    <%} else { %>
        <bean:message key="com.web.create"/>
    <%}%>
  </console:header>
  <console:pageBody>
        <tr><td><table width="100%"><tr><td>
         <%

      ServletContext pwgContext = getServletContext().getContext("/pwg");
      ivr_005fcallflow_005fframe_jsp.storeAdminSessionIdInContext(pwgContext, session.getId());
        WebConsoleSession webConsoleSession = (WebConsoleSession)session.getAttribute(LoginAction.WEB_CONSOLE_SESSION_KEY);
        if ( webConsoleSession != null )
              ivr_005fcallflow_005fframe_jsp.storeFPSAAdminSessionIdInContext( pwgContext, webConsoleSession.getSessionId() );
      RequestDispatcher dispatcher = pwgContext.getRequestDispatcher("/callflow");

      InvokeServletTag.FakeRequest subRequest = new InvokeServletTag.FakeRequest(request);
      if (request.getParameter("template") != null) {
          subRequest.setParameter("callFlowNumber", request.getParameter("template"));
      }
      InvokeServletTag.FakeResponse subResponse = new InvokeServletTag.FakeResponse();
      dispatcher.include(subRequest, subResponse);
      subResponse.flushTo(out);

          %>
        </td></tr></table></td></tr>
    <html:errors/>
  </console:pageBody>
</console:page>

谁能帮我解决这个问题。

从构建路径中删除 servlet-api, servlet, jsp-api and jasper 个 jars,您会看到一些编译问题,但容器会处理这些问题。或者,您可以编辑它们并指向新的 jar 文件