天天看点

【已解决】java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext

今天遇到一个怪异的事情,我本地的项目正常,放在了UAT环境就启动不了, 报错:

message java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;

原来是因为UAT环境是Tomcat6 而我本地是Tomcat5,5里面是需要servlet-api.jar和jsp-api.jar的,但是6里面是不需要这两个jar的,所以删除就好了。

详细错误:

type Exception report

message java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:268)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
	filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)
      

root cause

java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
	org.apache.jsp.indexlis_jsp._jspInit(indexlis_jsp.java:22)
	org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:164)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
	filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)