Maven메이븐 이용시 라이브러리 관리 주의해야할 점

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)

http://stackoverflow.com/questions/7064269/the-method-getjspapplicationcontextservletcontext-is-undefined-for-the-type-js

이번 경우는 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를 참조하지않는다.

Leave a Reply

Your email address will not be published. Required fields are marked *

 characters available