본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Spring framework

MongoDb Maven build 오류(JSONObject, JSONArray)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2023. 2. 2.

 

몽고DB를 사용하여 프로젝트를 하다가 간혹 빌드(Build)를 시도하다 만날 수 있는 오류 입니다.

개발도구에서는 아무이상 없이 잘 돌아가는데 빌드를 하면 패키지가 없다며 오류를 만날 때가 있습니다.

넴..? 왜요??

 

스택오버플로우(stack overflow)를 검색하다보면 해당 문제는 사용중인 라이브러리가 빌드(build) 환경에서는 포함되지 않아서 발생하는 문제라고 쓰여 있습니다.

아래는 JSONObject 클래스를 사용한 pom.xml 내용 입니다.

<!-- 몽고DB -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

 

해당 라이브러리를 적용하면 실제 클래스에서의 JSONArray 객체의 패키지명은 아래와 같습니다.

import org.springframework.boot.configurationprocessor.json.JSONArray;
import org.springframework.boot.configurationprocessor.json.JSONObject;

 

딱 봐도 아까 오류가 났던 사진에서 본 패키지이름 입니다!

그러므로 해당 패키지를 빌드할 때 포함시켜야 하는데..뭐라뭐라 하는 내용이 많은데 도통 어려워서..

저는 그러한 복잡한 방법 보다는 쉽게 가기 위해서 아래처럼 사용중인 패키지를 변경하여 주었습니다.  : - )

해당 라이브러리 이외에 1개를 더 추가합니다.

<!-- 몽고DB -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

<!-- 바인딩용 몽고DB 라이브러리 추가 -->
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>본인환경에맞는버전</version>
</dependency>

 

이렇게 org.json을 추가하고 난 뒤에 해당 클래스를 사용하는 곳에서의 import 경로를 바꾸도록 합니다.

//1. 요 패키지를 주석처리하고
//import org.springframework.boot.configurationprocessor.json.JSONArray;
//import org.springframework.boot.configurationprocessor.json.JSONObject;

//2. 아래 패키지인 org.json을 사용 하도록 합니다.
import org.json.JSONArray;
import org.json.JSONObject;

public class 몽고DB사용하는클래스{
    //생략...
}

 

요래 해주고 나면 아무문제없이 동작 & 빌드가 되는 것을 볼 수 있습니다!

몽고DB 관련 프로젝트를 빌드하다 만날수 있는 오류인  NoClassDefFoundError 대처 방법에 대해서 살펴 보았습니다.

틀린부분 또는 좋은의견은 언제든 연락주세요!  👻

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글