인프런 커뮤니티 질문&답변

syh8088님의 프로필 이미지
syh8088

작성한 질문수

재고시스템으로 알아보는 동시성이슈 해결방법

선생님이 프로젝트 spring 버전 기준으로 실무 통해 Redisson 적용시 문제

작성

·

887

0

강의 영상 그대로 spring boot 버전 2.7.2 기준으로

Redisson  적용시

implementation group: 'org.redisson', name: 'redisson-spring-boot-starter', version: '3.17.5'

 

더불어서 

implementation 'io.springfox:springfox-boot-starter:3.0.0' 
implementation 'io.springfox:springfox-swagger-ui:3.0.0'

swagger 도 적용 보통 하는데요.

 

문제는 해당 swagger 라이브러리를 추가 하고 프로세스 올리면

 

org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.22.jar:5.3.22]
	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.22.jar:5.3.22]
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.22.jar:5.3.22]
	at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-5.3.22.jar:5.3.22]
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-5.3.22.jar:5.3.22]
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) ~[spring-context-5.3.22.jar:5.3.22]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.22.jar:5.3.22]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.2.jar:2.7.2]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[spring-boot-2.7.2.jar:2.7.2]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.2.jar:2.7.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-2.7.2.jar:2.7.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.7.2.jar:2.7.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-2.7.2.jar:2.7.2]
	at com.example.demo.SynchronizedApplication.main(SynchronizedApplication.java:10) ~[classes/:na]
Caused by: java.lang.NullPointerException: null
	at springfox.documentation.spring.web.WebMvcPatternsRequestConditionWrapper.getPatterns(WebMvcPatternsRequestConditionWrapper.java:56) ~[springfox-spring-webmvc-3.0.0.jar:3.0.0]

.... 생략....

 

해당 에러가 발생되네요.ㅠ.ㅠ

 

개인적으로 구글링 해서 검색해보니

 

 

방법1

application.yml 에서

spring: 
 mvc: 
  pathmatch: 
   matching-strategy: ant_path_matcher

 

추가한다. (실패....)

 

방법2

spring boot 버전을 2.5.x 로 낮춘다. (성공...)

 

swagger 하고 spring boot, Redisson 버전 호환이 안되는거 같습니다.

 

다른 방법으로 Redisson 버전을 낮추다던가... swagger 버전을 낮추는거? (3.0 보다 낮은것은 없는거 같네요...)

 

해당 방법은 안되는거 같네요... spring boot 버전을 2.5.x 으로 낮추는 방법 밖에 길이 없는걸까요?

 

spring boot 버전을 낮추는것은 하책인거 같은데 ㅠ,ㅠ 방법이 혹시 있을까요...

 

TEST 한 프로젝트는 선생님이 강의 영상에 직접 만드신 프로젝트 기준으로 한것 입니다! ㅜㅜ

답변 1

0

최상용님의 프로필 이미지
최상용
지식공유자

리나님 안녕하세요!

이러한 에러는 저도 처음만나봐서 해결하는데 시간이 좀 걸렸네요 :)

https://github.com/springfox/springfox/issues/3462#issuecomment-979548234 에 해결답안이 나와있습니다.

WebMvcRequestHandlerProvider

WebMvcRequestHandlerProvider 를 리나님의 프로젝트에 생성합니다.

https://github.com/springfox/springfox/blob/master/springfox-spring-webmvc/src/main/java/springfox/documentation/spring/web/plugins/WebMvcRequestHandlerProvider.java

링크에 있는 내용을 복사합니다.

주의할점으로는 패키지를 리나님의 프로젝트 패키지가 아닌  springfox.documentation.spring.web.plugins 로 지정을 해야한다는 것입니다.

그리고 63번째 라인을 아래와 같이 변경해줍니다.

this.handlerMappings = handlerMappings.stream().filter(mapping -> mapping.getPatternParser() == null)
				.collect(Collectors.toList());

저는 이 방법대로 하니까 실행 되는것을 확인했습니다 :)

리나님의 프로필 이미지
리나
질문자

정말 감사합니다 :) 덕분에 해결되었습니다!

syh8088님의 프로필 이미지
syh8088

작성한 질문수

질문하기