我正在尝试在Netbeans中创建一个新的Web应用程序。 当我部署时,我得到以下异常。 我没有创建或添加任何库。只有index.jsp说Hello World。 我使用的是JDK 1.6和Tomcat 7。
例外
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:343) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
根本原因
java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax / servlet的/ ServletContext中;)Ljavax / servlet的/ JSP / JspApplicationContext; org.apache.jsp.index_jsp._jspInit(index_jsp.java:31) org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:49) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:180) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
就web.xml而言,其内容为
< ?xml version="1.0" encoding="UTF-8"?>
< web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0" >
< session-config>
< session-timeout>
30
< /session-timeout>
< /session-config>
< /web-app>
我经常搜索。这个错误的大多数解决方案都与lib文件夹中的.jar有关。我没有添加任何jar。
出了什么问题?
答案 0 :(得分:0)
AbstractMethodError
通常在运行时时抛出,因为当前执行的方法最后编译时,某些类的定义已经不兼容地更改。它通常也被编译器捕获。包含类javax.servlet.jsp.JspFactory
的 .jar 文件正在创建此异常。 检查tomcat lib文件夹中的jsp-api.jar
,并验证classpath
中是否存在正确的文件。确保没有其他版本的.jar文件具有相同的类导致此问题。