【问题标题】:Abstract Method error is thrown on Click of button单击按钮时引发抽象方法错误
【发布时间】:2015-05-10 10:31:14
【问题描述】:

我在单击按钮时遇到问题。页面上抛出抽象方法错误。可能是什么原因造成的,如果有人知道,请发表评论?

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

  • Build Machine:编译代码并生成 .war 文件
  • 目标机器:要部署的war文件和应用程序 从那台机器上运行。

构建机器有以下细节:

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 [${1}]"
echo "Stopping tomcat...";
ssh root@${1} "/sbin/service tomcat stop"
echo "Copying the WAR file..."
scp admin.war root@${1}:/usr/share/tomcat/webapps/
echo "Deploying and restarting tomcat..."
ssh root@${1} "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?如果我做错了什么,请发表评论。

【问题讨论】:

    标签: java maven tomcat ant jar


    【解决方案1】:

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

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

    【讨论】:

    • 我已经升级tomcat版本编译代码并在类中添加相关方法。问题得到解决。感谢您的解决方案。将 servlet-api.jar 和 jsp-api.jar 从 tomcat 7 lib 添加到构建机器。由于 tomcat 7 支持 servlet-api.jar 3.0 版和以前的版本,即 tomcat6 支持 servlet-api.jar 2.5 版。它在下一个版本中添加了更多方法。
    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多