【问题标题】:Upgrading from tomcat6 to tomcat7 giving errors AbstractMethod Error从 tomcat 6 升级到 tomcat7 给出错误抽象方法错误
【发布时间】:2015-03-04 10:33:50
【问题描述】:

我已经将我的 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>

谁能帮帮我。

【问题讨论】:

  • 检查你的构建路径并删除导致 jars 的错误
  • 能否也发布您的相关代码?
  • @Bono 添加了一些代码 sn-p
  • 对此的任何更新。有没有人发现代码有问题

标签: java tomcat tomcat7 tomcat6 abstract-methods


【解决方案1】:

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

【讨论】:

  • 你在说哪些罐子?从以前的 tomcat 版本中删除和添加新的 tomcat7 jar 文件。
  • 只需从构建路径中删除并将您的 Web 应用程序部署到 tomcat7,这些 jar 将在 tomcat 7 中存在
  • 我在 tomcat 文件夹中有以下可用的 jar。 ant.jar、commons-dbcp-1.2.1.jar、jasper-compiler.jar、naming-common.jar、naming-resources.jar、servlet-api.jar、jsp-api.jar、naming-java.jar 但是没有找到 servlet.jar 和 jasper.jar 文件。 tomcat6 和 tomcat7 之间的库有什么区别。你能给我一些链接吗?
  • 得到了解决方案。我在构建机器上上传了 tomcat7 库,并在所需的类中实现了所有抽象方法。感谢您的回复。
猜你喜欢
  • 2019-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-21
  • 1970-01-01
  • 1970-01-01
  • 2019-01-01
相关资源
最近更新 更多