TIL

TIL 220712 실전프로젝트 트러블슈팅

Vince_rf 2022. 8. 11. 11:23

# The input is not a valid base 64 encoded string

소켓이 자꾸 자동으로 디스커넥트되고, 그 아래에 저런 토큰 오류가 생겨서 토큰 값이 잘못
들어오고 있는지 의심을 해봤고, 그것이 정답이었다.

토큰 값 앞에 Bearer가 붙어서 생겼던 오류, substring으로 앞글자 7개를 끊어주니 잘 실행
된다.

# failed to lazily initialize a collection of role, .....no Session (through reference chain
ㄴ서버 연관관계 때문에 생긴 녀석인가?

결론을 말하자면 연관관계에서 생긴 문제가 맞았다. chatMessage 엔티티에 user를 

ManyToOne으로 연결시켜놓았는데, user에도 연결되어있는 TeamList라던지, MeetingList라던지

이 녀석들이 지연로딩을 실패했다며 에러메세지를 던져왔다.

처음에는 어리둥절 했지만, 지연로딩을 실패했다고? 하면서 Fetch에 대해서 구글에서

자세하게 조사하기 시작했다. 

조사결과 Fetch의 디폴트값은 EAGER로, 나는 따로 Fetchtype을 지정해놓지 않았기 때문에

지연로딩에 실패했다는 에러를 던져주는 것이었다. 그래서 먼저 에러를 던져온

TeamList에 LAZY를 입력해주니 드디어 "인간님, 이번에는 LAZY가 붙어있지 않은MeetingList

라는 놈이 말썽입니다요" 하길래 나는 아! Fetch라는 놈이 진짜 문제였구나 했다.

결국 해결은 chatMessage에 굳이 user객체를 넣어줄 필요가 없기 때문에

ManyToOne으로 저장해놓았던 user객체 테이블을 삭제해주고 실행하니 코드가 원활히 작동

하는것을 확인할 수 있었지만, 이번 일을 계기로 Fetch에 대해서 자세하게 알고 가는 것 같아

또 성장한 기분이 든다.




#setAllowCredentials 넌 뭐하는 놈이지?


#gitBash 리눅스에서 vim파일,conf에서 원하는 검색어 찾는 법을 조사했다.

Insert와 replace가 아닌 상태에서 ( 만약 insert혹은 replace 상태라면 아래 입력줄에서

<Insert> 등으로 알려줌, insert혹은 replace 상태를 해제 하려면 esc를 누르면 된다 )

/검색어 를 입력하고 엔터, 그 후에 n을 누르면 다음 검색어로 넘어간다.