[spring boot] json web token 에러
[spring 오류] Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'securityConfig' defined in URL [jar:file:/home/g20181031/serverBuild/croffle-0.1.1-SNAPSHOT.jar!/BOOT-INF/classes!/com/sungshin/croffle/config/SecurityConfig.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'OAuthAuthenticationSuccessHandler' defined in URL [jar:file:/home/g20181031/serverBuild/croffle-0.1.1-SNAPSHOT.jar!/BOOT-INF/classes!/com/sungshin/croffle/config/auth/handler/OAuthAuthenticationSuccessHandler.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tokenProvider': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [com.sungshin.croffle.config.auth.token.TokenProvider] from ClassLoader [org.springframework.boot.loader.LaunchedURLClassLoader@2b71fc7e]
이런 에러가 발생, TokenProvider 클래스에서 오류가 나는것 같았는데, 그 안에 있는 AppProperties 설정을 못받아 오는것 같았다.
로컬에서 실행할때는 오류가 생기지 않는데, jar 파일로 실행만 하면 발생하는 오류였다
<해결방법>
build.gradle 의 디펜던시 문제였다.
기존 build.gradle 의 dependency 목록에 json web token 이 compileOnly 로 되어있었는데, Implementation으로 변경하니까 해결됐다.
<기존코드>
compile group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1'
<변경코드>
implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1'