Ebi Shrimp Sushi
🌠 Trouble Shooting

Method 'GET' is not supported.

🌝발생원인 아래 HTML코드의 a 태그를 클릭하여 deleteCommunity를 수행하려고 했는데 해당 에러가 발생했다 ! 삭제 @DeleteMapping("delete") public String deleteCommunity(@RequestParam(name = "communityNo") int communityNo) throws Exception { communityservice.deleteCommunity(communityNo); return "/home"; } 검색을 통해 찾아본 결과 a태그는 화면이동을 처리하기 위해 자동으로 GET 매핑을 실행한다고 한다. 그냥 GET매핑으로 바꾸는 방법도 있겠지만 RESTful API의 설계 원칙을 따르기 위해서는 DELETE 매핑이 권장되기 때문에 방법을 찾..

🌠 Trouble Shooting

[ DB ]invalid stream header: 32303233

🙄발생이유 해당 에러는 Java에서 직렬화된 객체를 역직렬화할 때 발생하는 문제라고 한다. 직렬화? 역직렬화?? 이해를 못해서 다른분들이 어떻게 해결했나 찾아보니 원인이 아주아주 다양했지만 주로 엔티티 설정을 잘못해서 발생하는 에러 같았고, 특히 TimeStamp 관련해서 문제가 발생한 경우가 많은 것 같았다. 엔티티를 확인해보니 아니나 다를까 Date 형식을 TimeStamp로 설정한 부분이 있었고 이를 java.util.date로 수정하니 에러가 해결되었다 ! 정확히 원인을 알고자 자세히 살펴보니 좌측의 DB의 regdate 타입이 -> TimeStamp 우측의 엔티티의 regdate 타입이 -> TimeStamp 여기까지는 괜찮았는데 엔티티의 TimeStamp 타입이 security와 sql로 나뉘..

🌠 Trouble Shooting

java.lang.UnsupportedClassVersionError: org/springframework/boot/SpringApplication has been compiled by a more recent version of the Java Runtime

🙄발생 원인 검색해보니 org/springframework/boot/SpringApplication 클래스가 더 최근 버전의 Java Runtime으로 컴파일되었음을 나타내며, 현재 사용 중인 Java Runtime은 해당 클래스 파일 버전까지만 인식할 수 있다는 내용이라고 한다 ! 그래서 확인을 해보니 Java Compiler와 Project Facets의 자바 버전이 11로 되어 있었다. Spring Boot3 의 JDK 요구사항은 17부터이기 때문에 ava Compiler와 Project Facets의 자바 버전을 17로 변경하니 에러가 해결 되었다. 🙂해결 방법 프로젝트 우클릭 - Build Path - Configure Build Path Project Facets와 Java Compiler의 ..

🌠 Trouble Shooting

[ mapstruct ]Cannot find implementation for mycompany.mapper.Mapper

🙄발생 이유 mapstruct를 사용하여 매핑을 진행했는데 해당 에러가 발생했다. 찾아보니 이클립스가 구현체를 찾지 못해 발생하는 에러 혹은 sts에서 lombok과 mapstruct를 같이 사용해서 발생하는 에러라고 한다. mapstruct를 사용하기 전에 찾아본 여러글에서 lombok과 mapstruct를 같이 사용 할 경우 의존성의 순서를 바꿔주면 문제가 없다고 해서 그렇게 했는데...😅 아무튼 그럼에도 불구하고 해당 에러가 발생한것으로 보아 전자가 원인이 아닐까 추측해보았고, 찾아보니 정말 mapper 구현체가 이클립스에 없었다 하하하 이클립스 문제인가 해서 찾아봐도 안나오고... mapstruct 문제인가 해서 찾아보고 안나와서 열심히 삽질한 결과 AnnotationProcessing을 추가해야..

🌠 Trouble Shooting

[ thymeleaf 에러 ]TemplateInputException: An error happened during template parsing (template: "class path resource [templates/...]")] with root cause

🤔원인 타임리프가 스프링 부트 내부에서 템플릿(html)을 찾지 못해 발생하는 에러이며, 일반적인 원인으로는 잘못된 경로 설정이나 잘못된 타임리프 문법 등이 있다고 한다. 😊해결 방법 경로 설정은 제대로 되어 있어서 문법을 확인해보니... DTO에서는 regdate의 타입을 String으로 하였고, 타임리프에서는 date타입으로 출력되도록 해서 발생하는 에러였다 !

🌠 Trouble Shooting

[ JPA 순환 참조 ] java.lang.IllegalStateException: Cannot call sendError() after the response has been committed

🤔 에러 발생 이유? 검색을 통해 순환 참조로 인해 발생하는 에러라는 것을 알게 되었다! 순환 참조는 ManyToOne, OneToMany와 같은 양방향 관계에서 발생 할 수 있는데, 예를들어 member,community(커뮤니티 글) 엔티티가 있다고 아래 이미지와 같이 가정해보았다. 이를 엔티티로 표현하면 아래와 같을 것이다. @AllArgsConstructor @NoArgsConstructor @ToString @Getter @Setter @Entity public class Member { @Id private String id;//아이디 @Nonnull @Column(nullable = false) private String pw;//비밀번호 private String name;//이름 //....

🌠 Trouble Shooting

[MySQL]SQL Error [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'full OUTER JOIN PRODUCT p ON u.no = p.no LIMIT 0, 200'

해당 쿼리에서 에러가 났다 ! LIMIT을 주지도 않았는데 왜 자동으로 생성 된걸까... 찾아보니 mySQL은 FULL OUTER JOIN을 지원하지 않는다고 한다. SELECT u.ID, u.이름, p.no, p.이름 FROM USER u full OUTER JOIN PRODUCT p ON u.no = p.no; 그래서 같은 결과를 반환하도록 LEFT JOIN, RIGHT JOIN으로 각각 조인 후 UNION을 이용해 합쳐주었다 ! SELECT u.ID, u.이름, p.no, p.이름 FROM USER u LEFT JOIN PRODUCT p ON u.no = p.no UNION SELECT u.ID, u.이름, p.no, p.이름 FROM USER u RIGHT JOIN PRODUCT p ON u.no..

🌠 Trouble Shooting

[Eclipse]프로젝트 옆 ?(물음표)

별건 아니지만 또 당황 할 수 있으니 정리해두기 Git이랑 연동한 폴더에 아직 올라가지 않은 파일들은 '?'가 뜬다고 한다

hoso
'🌠 Trouble Shooting' 카테고리의 글 목록