[UnitTest] 에서 andDo(print()) 사용 시 java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted() 에러 조치

문제 : 서블릿 3.0 을 사용하고 있음에도 버전 충돌이 생겨 테스트가 진행이 되지 않음


원인 : servlet 버전이 맞지 않았을 때 발생. spring 4.0 의 spring-test 에서는 servlet 3.0 스펙을 요구함

상태 : servlet-api-3.0 버전을 사용하고, web.xml 에도 3.0사용을 명시를 하였으나, HttpServletRequest.isAsyncStarted() 메서드가 없다는 에러가 계속 발생함.

조치 1 : 

Maven reference 에 servlet-2.x 를 사용하고 있는지 확인

누가 사용하는지는 모르지만 servlet-api-2.5.jar 가 들어가 있는 것을 확인

조치 2 : 

mvn dependency:tree -Dverbose -Dincludes=javax.servlet 명령어로 메이븐 의존 tree 검색


junit-runner 에서 servelt-api-2.5를 사용하고 잇는 것을 발견.  해당 버전 업데이트 하여 해결

댓글

이 블로그의 인기 게시물

[JDBC] 쿼리 후에 ResultSet 에 데이터가 있는지 확인하는 방법

[Android] Android 로깅 시 isLoggable() 메서드 사용

[Spring] @PropertySource and Environment 사용시 Property 값이 null 로 들어오는 경우