org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 31 in the generated java file The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
이번 경우는 jsp-api때문이었다.
2.2와 2.5버전에서 변경된 메서드때문에…
<dependency> <groupId>joda-time</groupId> <artifactId>joda-time-jsptags</artifactId> <version>1.0</version> <exclusions> <exclusion> <artifactId>jsp-api</artifactId> <groupId>javax.servlet</groupId> </exclusion> </exclusions> </dependency>
이번경우는 joda time에서 jsp-api를 참조하는바람에 다 제외시켜놓은 jsp-api가 지맘대로 포함이되서 문제가 생긴 경우다. 톰캣7에서 문제가 발생한다.
그런데 더 문제는 이클립스에서는 문제가 안 생기다가 서버에서만 문제가 발견된다는거.. 이 경우에는 참 성가시다. 서버로그를 확인해야 되서
jstl, jsp 관련 jar파일은 맨날 문제를 일으키니 미리미리 관리해놓는게 좋다
jsp-api를 provided로 묶어놓으면 괜찮을까 했는데 ..쪼다놈이 2.0파일을 끌어다놓는다.
2.2를 dependency에 넣었는데 왜 2.0을 또 끌어들이나… 메이븐 관리체계에 좀 문제가 있긴하지만 뭐 그래도 잘 설정해놓으면 쓰기는 편하니…하나하나 찾아서 제외시켜야지 뭐 별수없는듯…
joda 1.1은 jsp-api를 참조하지않는다.