(spring boot) maven mapper 이용한 빌드가 서버에서 제대로 동작하지 않습니다.고수님들 도와주세요ㅠ

260 views
Skip to first unread message

김민식

unread,
May 15, 2021, 12:04:53 PM5/15/21
to Korea Spring User Group Q&A
안녕하세요. 스프링부트로 개인적인 프로젝트를 진행하고 있는 취준생입니다.
다름이 아니라 스프링부트 빌드관련해서 질문을 드리려고 합니다.

먼저 저는 
maven 이 아닌  maven mapper 를 이용하여 spring boot app 을 서버에서 빌드하고 실행하려고 합니다.

문제는 local 에서 해당 리포지토리(설정파일은 gitignore 에 추가했습니다) 다운받고 
첫번째 :  ./mvnw clean package  (빌드)
두번째 :  java -jar -Dspring.config.location=/../../application.properties,/../../application.yml target/app.jar 
(이때 properties 와 yml 에 원격db 정보가 들어있습니다.)

그리고 똑같은 과정(git clone -> ./mvnw clean package -> java -jar .. ) 을 서버에서도(ssh 접속) 진행하였는데, 빌드까지는 잘 되었습니다. 그런데 문제는 java -jar 로 실행했을 때

순환참고 에러가 나오는 데 조금 당황스럽니다. 
org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'brokerMessagingTemplate': Requested bean is currently in creation: Is there an unresolvable circular reference?

순환참조 문제인가? 싶다가도 로컬에서 똑같은 코드로 로컬에서 작동되었다는 것은 내부의 코드는 문제없다는 것이고 순환참조문제는 아닐것이다 라고 결론을 내리고 빌드를 할 때 컴퓨터의 환경적인 요인 때문에 잘못된 것은 아닐까 생각하고 서치하고 있는데, 혹시 고수님들 혹시 이런 경험 있으신가요? 



혹시나 몰라 현재 깃헙 파일구조도 같이 올립니다. 

스크린샷 2021-05-16 오전 1.04.15.png



gildongoreo

unread,
May 15, 2021, 12:15:13 PM5/15/21
to ks...@googlegroups.com


고골링하니 Stackoverflow에도 순환참조로 계속 코드를 고쳐보라는 솔루션으로 나오긴하는데... 로컬에선 문제없으시다고 하니

오류나는 코드 로컬 코드랑 비교해보셨나요? 예를들면 스프링 버전이라던지 코드형상관리라던지..






2021년 5월 16일 (일) 오전 1:04, 김민식 <minsh...@gmail.com>님이 작성:
--
이 메일은 Google 그룹스 'Korea Spring User Group Q&A' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/ksug/2be1c37c-543b-4221-b614-4806ccfcaa1bn%40googlegroups.com을(를) 방문하세요.

김민식

unread,
May 15, 2021, 12:32:34 PM5/15/21
to Korea Spring User Group Q&A
우선 제가 시도해본건 처음부터 GIT CLONE 부터 해보는 것이였습니다. 이 경우에는 당연히 두 코드가 같을 테닌까요.. ㅠㅠ
즉,
local 에서 git clone 해서 처음부터 시작해서 빌드 -> 실행 (정상작동)
서버에서 git clone 해서 처음부터 시작해서 빌드 -> 실행 ( 순환참조 문제..) 
이런 상황이였습니다. 


스프링버전?이나 코드형상관리? 는 잘 모르겠는데, 혹시 그런 부분도 영향이 있을까요?



2021년 5월 16일 일요일 오전 1시 15분 13초 UTC+9에 cloudsk...@gmail.com님이 작성:

dd.stay.hf

unread,
May 15, 2021, 5:55:52 PM5/15/21
to ks...@googlegroups.com
전체 오류코드를 봐야할것같구요
autowired 를 사용하셨나요?
생성자로 선언하는 코드로 변경해보시길
private final



내 Galaxy에서 보냄


-------- 원본 이메일 --------
발신: 김민식 <minsh...@gmail.com>
날짜: 21/5/16 오전 1:32 (GMT+09:00)
받은 사람: Korea Spring User Group Q&A <ks...@googlegroups.com>
제목: Re: [KSUG] (spring boot) maven mapper 이용한 빌드가 서버에서 제대로 동작하지 않습니다.고수님들 도와주세요ㅠ

김민식

unread,
May 16, 2021, 2:11:17 AM5/16/21
to Korea Spring User Group Q&A
에러 호출스택가운 에러 난 부분에 해당되는 클래스 내부의 autowired 를 전부 private final 로 바꾸고 lombok @RequiredArgsConstructor 어노테이션으로 생성자로 선언하도록 바꿨는 데도
안되어서  @Lazy 까지 적용하니 정상적으로 서버에서도 빌드 -> 실행까지 되었습니다. 

문제는 해결되서 다행이지만, 조금 찝찝하네요.. 왜 같은 코드인데 서버에서는 안되었고, 로컬에서 되었는 지 아직도 의문이긴합니다. 
저는 끝까지 순환참조 문제라고 에러문구가 나오고 있지만 똑같은 코드이고 같은 메이븐매퍼를 이용해서 빌드를 하기때문에 코드를 수정할 생각은 못하고 있었는데
이 문제는 도대체 어떻게 추측할 수 있을까요?...(매이븐메퍼도 환경에 영향을 받나요?.. 그건아닐테구) 


2021년 5월 16일 일요일 오전 6시 55분 52초 UTC+9에 dd.st...@gmail.com님이 작성:

한혜인

unread,
May 16, 2021, 2:34:24 AM5/16/21
to ks...@googlegroups.com
안녕하세요 밖이라 핸드폰으로 답변드립니다.

일단 빈이 등록되는과정이 스프링과 스프링부트가 다릅니다.
스프링은 순서를정해주면 그것을먼저인식하고 순서를 정해주지않으면 알파벳 순으로 인식하고

스프링부트는 워크스페이스 파일명 순으로 인식합니다.
따라서 순환참조가 난다면 빈 인식순서 @order 를 주셔야합니다.



2021년 5월 16일 (일) 오후 3:11, 김민식 <minsh...@gmail.com>님이 작성:
Reply all
Reply to author
Forward
0 new messages