当我试图在EclipseGalileoIDE中运行Struts2应用程序时出现异常

当我试图在EclipseGalileoIDE中运行Struts2应用程序时出现异常,eclipse,jakarta-ee,tomcat,struts2,Eclipse,Jakarta Ee,Tomcat,Struts2,我得到以下错误: javax.servlet.ServletException: java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext; org.apache.jasper.servlet.JspServlet.service(Js

我得到以下错误:

javax.servlet.ServletException: java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:342)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
    org.apache.jsp.Login_jsp._jspInit(Login_jsp.java:34)
    org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:49)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:171)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
我在WEB INF库中有以下jar文件:

  • commons-logging-1.0.4.jar
  • freemarker-2.3.8.jar
  • ognl-2.6.11.jar
  • struts2-core-2.0.12.jar
  • xwork-2.0.6.jar
我正在使用ApacheTomcatV6.0


请帮帮我。

你应该注意的事情很少

  • 确保您有相同版本的JAR包含
根据你的帖子,你有不同版本的JAR,比如你使用的是非常旧的S2内核版本,你使用的是不同版本的Xcore

我的建议是从S2主页下载,这不仅可以让您了解S2应用程序的结构,还可以让您清楚地了解应用程序中使用的jar版本

关于您的异常,它似乎是web应用程序中特定于容器的JAR。因为您使用Eclipse作为IDE,所以您应该在项目的属性中将servletcontainer设置为目标运行时。这样,Eclipse将自动获取项目构建路径中的所有库

有关详细信息,请参阅下面的线程


    • 你应该注意的事情很少

      • 确保您有相同版本的JAR包含
      根据你的帖子,你有不同版本的JAR,比如你使用的是非常旧的S2内核版本,你使用的是不同版本的Xcore

      我的建议是从S2主页下载,这不仅可以让您了解S2应用程序的结构,还可以让您清楚地了解应用程序中使用的jar版本

      关于您的异常,它似乎是web应用程序中特定于容器的JAR。因为您使用Eclipse作为IDE,所以您应该在项目的属性中将servletcontainer设置为目标运行时。这样,Eclipse将自动获取项目构建路径中的所有库

      有关详细信息,请参阅下面的线程


      请显示您的web.xml。您的罐子适用于2.0.12。。。如果这是一个新项目,那么最好使用最新的struts2(版本2.3.1.2)。请显示您的web.xml。您的罐子适用于2.0.12。。。如果这是一个新项目,那么最好使用最新的struts2(版本2.3.1.2)。