MSA 템플릿 중 module-common 커스터마이징 방법
- 작성자 :
- 유*혁
- 작성일 :
- 2025-02-21 10:26:58
- 조회수 :
- 272
- 구분 :
- 개발환경 / 4.2
- 진행상태 :
- 완료
Q
MSA 템플릿 코드에서 의존하고 있는 module-common 라이브러리를 상황에 맞게 커스터마이징 하기 위해
https://github.com/eGovFramework/egovframe-msa-edu/tree/contribution/backend/module-common
위 소스를 클론한 뒤 아래 내용을 수정하였습니다.
1. BaseEntity의 CreatedBy, LastModifiedBy 필드를 UUID로 변경
2. 유틸성 클래스들 추가 (ex ExcelUtil, ResponseUtil 등)
3. API Code 공통화를 위한 인터페이스 및 Enum 작성
4. OpenApiDocsConfig 수정
이 과정에서 엑셀 관련 라이브러리 추가를 위해 build.gradle에 poi 디펜던시만 추가하였고 나머지는 기존 소스와 동일하게 맞춰뒀습니다.
이후 Nexus 서버에 배포하였고 기존 개발한 서비스에서도 배포된 라이브러리를 사용하도록 build.gradle을 수정하였습니다.
이후 gradlew clean build --refresh-dependencies 실행 시 정상적으로 변경된 라이브러리를 로드한 것을 확인했으며 빌드 시 이상이 없었습니다.
그러나 서버 실행 도중 entityManagerFactory 빈을 찾을 수 없다는 에러가 발생하는데 원인을 알 수 없는 상황입니다.
common 을 수정하여 사용하려면 어떤 과정이 추가적으로 있어야 하는지 확인 부탁 드립니다.
[추가정보]
1. admin-service에 jakarta.persistence-api-2.2.3.jar 라이브러리가 추가되어있음을 확인
2. 메이븐 레파지토리 연결은 아무 이상 없음
3. 기존 org.egovframe.cloud:module-common:4.2.0 라이브러리로 작업했을 땐 아무 이상 없었음
4. EntityScan, ComponentScan의 범위는 기존 템플릿과 동일하도록 구성해두었음
5. common 프로젝트에서의 JpaConfig 또한 기존과 동일
+ 25.02.21 오후 3:49 추가
ApiLogService 관련한 소스들을 모두 주석 처리 후 동일한 과정을 거쳤을 땐 아래 오류 메세지가 나옵니다.
Parameter 0 of method jpaQueryFactory in org.egovframe.cloud.servlet.config.JpaConfig required a bean of type 'javax.persistence.EntityManager' that could not be found.
https://github.com/eGovFramework/egovframe-msa-edu/tree/contribution/backend/module-common
위 소스를 클론한 뒤 아래 내용을 수정하였습니다.
1. BaseEntity의 CreatedBy, LastModifiedBy 필드를 UUID로 변경
2. 유틸성 클래스들 추가 (ex ExcelUtil, ResponseUtil 등)
3. API Code 공통화를 위한 인터페이스 및 Enum 작성
4. OpenApiDocsConfig 수정
이 과정에서 엑셀 관련 라이브러리 추가를 위해 build.gradle에 poi 디펜던시만 추가하였고 나머지는 기존 소스와 동일하게 맞춰뒀습니다.
이후 Nexus 서버에 배포하였고 기존 개발한 서비스에서도 배포된 라이브러리를 사용하도록 build.gradle을 수정하였습니다.
이후 gradlew clean build --refresh-dependencies 실행 시 정상적으로 변경된 라이브러리를 로드한 것을 확인했으며 빌드 시 이상이 없었습니다.
그러나 서버 실행 도중 entityManagerFactory 빈을 찾을 수 없다는 에러가 발생하는데 원인을 알 수 없는 상황입니다.
common 을 수정하여 사용하려면 어떤 과정이 추가적으로 있어야 하는지 확인 부탁 드립니다.
[추가정보]
1. admin-service에 jakarta.persistence-api-2.2.3.jar 라이브러리가 추가되어있음을 확인
2. 메이븐 레파지토리 연결은 아무 이상 없음
3. 기존 org.egovframe.cloud:module-common:4.2.0 라이브러리로 작업했을 땐 아무 이상 없었음
4. EntityScan, ComponentScan의 범위는 기존 템플릿과 동일하도록 구성해두었음
5. common 프로젝트에서의 JpaConfig 또한 기존과 동일
+ 25.02.21 오후 3:49 추가
ApiLogService 관련한 소스들을 모두 주석 처리 후 동일한 과정을 거쳤을 땐 아래 오류 메세지가 나옵니다.
Parameter 0 of method jpaQueryFactory in org.egovframe.cloud.servlet.config.JpaConfig required a bean of type 'javax.persistence.EntityManager' that could not be found.
환경정보
-
- OS 정보 : Window 11
- 표준프레임워크 버전 : 4.2
- JDK(JRE) 정보 : 1.8
- WAS 정보 :
- DB 정보 :
- 기타 환경 정보 : MSA 템플릿 구성
A
안녕하세요.
표준프레임워크 센터입니다.
표준프레임워크 센터에서는 오픈소스로 소스코드 및 가이드를 아무런 제약없이
모두 무료로 사용할수 있도록 제공하고는 있으나
커스터마이징 하는경우 다양한 경우의 수 및 사이드 이펙트가 발생할 수 있기때문에
별도 지원을 해드리기 어렵습니다.
개발사 또는 기관에서 별도 환경을 구축하고 자체적으로 다양한 검토와 테스트가 필수적입니다.
Parameter 0 of constructor in org.egovframe.cloud.servlet.service.ApiLogService required a bean named 'entityManagerFactory' that could not be found.
Cannot create inner bean of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager';
위 로그를 확인해 보니, JPA 관련 빈의 생성 과정에서 오류가 발생한 것을 확인하였습니다.
Spring Boot의 JPA 자동 구성(autoconfiguration)이 제대로 동작하지 않아, SharedEntityManager를 생성하기 위한 전제 조건인 entityManagerFactory 빈이 생성되지 않았기 때문입니다.
추가한 클래스들에 빈 생성 어노테이션이 누락된 부분은 없는지 확인 부탁드리며, 패키지 스캔도 문제 없는지 확인이 필요해 보입니다.
poi와 기존 의존성 간에 충돌이 일어나는 부분은 없는지 점검을 해보셔야 할 것으로 보입니다.
감사합니다.
표준프레임워크 센터입니다.
표준프레임워크 센터에서는 오픈소스로 소스코드 및 가이드를 아무런 제약없이
모두 무료로 사용할수 있도록 제공하고는 있으나
커스터마이징 하는경우 다양한 경우의 수 및 사이드 이펙트가 발생할 수 있기때문에
별도 지원을 해드리기 어렵습니다.
개발사 또는 기관에서 별도 환경을 구축하고 자체적으로 다양한 검토와 테스트가 필수적입니다.
Parameter 0 of constructor in org.egovframe.cloud.servlet.service.ApiLogService required a bean named 'entityManagerFactory' that could not be found.
Cannot create inner bean of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager';
위 로그를 확인해 보니, JPA 관련 빈의 생성 과정에서 오류가 발생한 것을 확인하였습니다.
Spring Boot의 JPA 자동 구성(autoconfiguration)이 제대로 동작하지 않아, SharedEntityManager를 생성하기 위한 전제 조건인 entityManagerFactory 빈이 생성되지 않았기 때문입니다.
추가한 클래스들에 빈 생성 어노테이션이 누락된 부분은 없는지 확인 부탁드리며, 패키지 스캔도 문제 없는지 확인이 필요해 보입니다.
poi와 기존 의존성 간에 충돌이 일어나는 부분은 없는지 점검을 해보셔야 할 것으로 보입니다.
감사합니다.