스프링
-
SQLTransientConnectionException ???스프링 2022. 7. 12. 23:57
소켓으로 다수의 채팅방을 만들어 다수의 사용자가 실시간 통신을 할 수 있게하는 프로젝트를 구현하다가 서버단에서 맞닥드리게된 에러이다. jpa가 아닌 기존 jdbc의 Connection 객체를 활용해 클라이언트가 보낸 메세지를 서버에 저장하던 중 20개 정도 이상의 메세지를 보내면 서버에서 해당 에러가 발생했다. 구글링을 해보니 원인은 컴퓨터 내부에서 dead lock(교착 상태)가 발생한것이라는데, 교착상태란 여러개의 프로세스나 스레드가 서로 배타적 접근을 하여 서로 갖고있는 자원을 요구하게되고 진전 없이 그 상태가 지속됨을 의미한다. 살펴보니 jdbc에서는 repository 클래스에서 db와 통신할 때 Connection객체를 생성해 쿼리를 수행하는데 내가 작성한 코드에는 쿼리를 수행한 후 Conne..
-
프로젝트를 하며 마주친 ConcurrentModificationException스프링 2022. 5. 6. 14:53
https://m.blog.naver.com/tmondev/220393974518 List 순회 중 만난 ConcurrentModificationException과 컬렉션 불변성 Java로 웹 서비스를 개발하다 보면 여러 가지 Exception을 만나게 된다. 특히 NullPointerException는... blog.naver.com 해당 블로그 참고를 해서 문제를 해결했다. 미니 블로그 사이트를 제작하는 프로젝트를 수행하면서 ConcurrentModificationException에 부딛혔다. 이 익셉션은 한 번 부딛혀볼만한 익셉션이었는데 나에게는 처음보는 나름 생소한 익셉션이라 기록을 해두려한다. 이 익셉션이 발생한 나의 코드는 댓글 인스턴스가 들어있는 List객체를 foreach문으로 순회하면서,..
-
스프링부트에서 HttpResponse 헤더 객체를 React Client에 보내기.스프링 2022. 4. 25. 11:54
HttpHeaders headers = new HttpHeaders(); headers.set("token", auth); headers.set("Access-Control-Expose-Headers", "*"); return ResponseEntity.ok() .headers(headers) .body(null); 프로젝트를 진행하던 도중, Http객체의 헤더 안에 넣어 보내려고한 정보가 막상 클라이언트에서 받아지지않는 문제가 있었다. 위 코드처럼 headers에 token을 담아 보냈음에도불구하고 사진처럼 headers에는 아무값도 담기지않았다. 결론적으로 저 headers에는 content-length 만이 아닌 더 많은 정보가 담겨야하는데, 딱 content-length 만 headers에 담겨져..