보뇨 다이어리

configurationprocessor jsonException 에러 본문

컴퓨터 관련/Java 정보

configurationprocessor jsonException 에러

보뇨 2024. 3. 12. 23:23
반응형

레거시 코드를 개선하다가 로컬에서는 문제가 없고 정작 배포를 하면 제목과 같은 에러가 발생했는데

정확히는 아래 내용도 포함하여 에러를 던졌다.

java.lang.IllegalStateException: Failed to introspect Class from ClassLoader

 

원인은 스프링부트 2.4.0 이상부터는 configurationprocessor 쪽 패키지를 컴파일레벨에서만 처리하도록하고 제거된것이 특징이다.

그렇기때문에 2.4.0 미만 버전에서만 동작하던것들이 안되는것임을 알았다.

https://github.com/spring-projects/spring-boot/issues/24244

 

2.4 Release Notes does not indicate that known annotation processors are removed from repackaged jar · Issue #24244 · spring-p

I upgraded a spring boot project from v 2.1 to 2.4.0 . After a 'mvn clean install' the configuration processor jar is missing in the app.jar. Build goes with spring-boot-maven-plugin: <plugin> <gro...

github.com

수많은 블로그들과 stackoverflow 에서는 이것을 해결하기위해 org.json 패키지 의존을 추가하는것을 적시해두었다.

https://stackoverflow.com/questions/73071773/how-to-fix-java-lang-classnotfoundexception-org-springframework-boot-configurat

 

How to fix java.lang.ClassNotFoundException: org.springframework.boot.configurationprocessor.json.JSONException error?

I am getting following error when I run my spring boot service in production as windows service. Service exe is created by Jar2exe. java.lang.reflect.InvocationTargetException at java.base/jdk.

stackoverflow.com

 

근데 어차피 패키지를 변경하는거 왜 또 의존을 추가해야하는건지 좀 마음에 들지않았고

굳이 JSONObject 를 고수할게아니라면 (애초에 패키지도 달라서 이름만 같고 다르다)

이미 의존으로 포함되어있는 Jackson 라이브러리 JsonNode 로 변경하여 사용하도록하자.

 

 

반응형