天天看點

【已解決】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)