我收到以下错误:
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-lib 中有以下 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
我正在使用 Apache Tomcat v6.0。
请帮帮我。
最佳答案
有几件事你应该注意
- 确保你有相同版本的 jar 包
根据您的帖子,您有不同版本的不同 jar,就像您使用的是非常旧版本的 S2 核心,而您使用的是不同版本的 Xcore。
我的建议是下载sample application来自 S2 主页,这不仅会让您了解 S2 应用程序的结构,还会清楚地了解应用程序中使用的 jar 版本。
关于您的异常,它似乎是您的 Web 应用程序中特定于容器的 jar。由于您将 Eclipse 用作 IDE,因此您应该在项目属性中将 servletcontainer 设置为目标运行时。这样,Eclipse 将自动获取项目构建路径中的所有库。
详情请看下面的帖子
关于eclipse - 当我尝试在 eclipse galileo IDE 中运行 struts 2 应用程序时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9990893/