单击按钮时引发抽象方法错误

Abstract Method error is thrown on Click of button

我在点击按钮时遇到问题。页面抛出抽象方法错误。是什么原因造成的,有知道的请评论一下?

试图分析配置并发现了一些东西。我们项目中的构建机器和目标机器是不同的。

构建机器有以下详细信息:

java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.6) (rhel-1.43.1.10.6.el6_2-i386)
OpenJDK Server VM (build 20.0-b11, mixed mode)

Tomcat 6 已安装。

目标机器有以下详细信息:

java version "1.7.0_75"
OpenJDK Runtime Environment (rhel-2.5.4.0.el6_6-i386 u75-b13)
OpenJDK Server VM (build 24.75-b04, mixed mode)

Tomcat7 安装在目标机器上。

install.sh

#!/bin/sh

echo "Installing Web GUI on []"
echo "Stopping tomcat...";
ssh root@ "/sbin/service tomcat stop"
echo "Copying the WAR file..."
scp admin.war root@:/usr/share/tomcat/webapps/
echo "Deploying and restarting tomcat..."
ssh root@ "rm -rf /usr/share/tomcat/webapps/admin;unzip -o -q /usr/share/tomcat/webapps/admin.war -d /usr/share/tomcat/webapps/admin;/sbin/service tomcat start"
echo "System should be up soon."

抛出的抽象方法:

java.lang.AbstractMethodError
    javax.servlet.ServletRequestWrapper.isAsyncStarted(ServletRequestWrapper.java:396)
    com.console.jsp.editCDTemplate_jsp._jspService(editCDTemplate_jsp.java:167)
    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.console.CharsetFilter.doFilter(CharsetFilter.java:16)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

是否也需要在构建机器上更新 tomcat?如果我做错了什么请评论。

看起来 javax.servlet jar 文件太旧了,servlet 3.0 规范中引入了异步支持:http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#isAsyncSupported()

如果您的代码需要,那么可以,升级 tomcat 版本。 tomcat 的站点上也有一个 servlet 版本兼容性矩阵。 希望这有帮助。