본문 바로가기
728x90

[Error Handling]27

😡 NGINX : SSL 문제 해결 방법(curl: (60) Peer's Certificate issuer is not recognized. / SunCertPathBuilderException: unable to find valid certification path to requested target) 🚨 Error : 💡 NGINX에 ssl 적용을 테스트하는데 문제가 발생했다. 📜 nginx.conf 일부 http { ssl_certificate /path/ ssl_certificate_key /path/ server { listen 8080 ssl; server_name test; ... } ... } ssl_certificate에는 인증서의 경로를 적고, ssl_certificated_key에는 해당 인증서의 개인 키 파일 경로가 들어가야 한다. 이를 통해 NGINX 서버에 HTTPS 연결을 설정하고 암호화된 통신을 적용할 수 있다. 수정을 마치고 로컬 서버의 크롬 브라우저에서 해당서버로 HTTPS 접속을 시도했더니 성공했다. Postman으로도 POST, GET 요청을 보냈는데 잘 되길래 정상적.. 2023. 12. 11.
[MySQL] @Transactional을 붙인 메서드가 롤백되지 않을 때 해결 방법 🚨 Error : 💡 일반적으로 @Transactional 애너테이션을 붙인 메서드 내에 로직 수행 시 문제가 발생하면 데이터베이스에 저장된 데이터가 롤백이 된다. 그런데, 분명 @Transactional 애너테이션을 붙였는데 UnCheckedException이 발생해도 롤백이 되지 않았다. 인터넷에 검색해 보면 대부분이 CheckedException이 발생했는데 롤백이 되지 않아 헤맸다는 글이었다. 스프링의 @Transactional은 기본적으로 CheckedException을 롤백이 시키지 않는다. 이를 설정하기 위해서는 @Transactional(rollbackFor = Error.class)과 같이 rollback이 적용될 Exception을 커스텀하게 설정해야 한다. 문제는 나의 경우에는 Run.. 2023. 10. 19.
😡 자바 프로젝트에서 Docker 컨테이너 내 MySQL 접근 거부 해결방법 Access denied for user 'root'@'localhost' (using password: NO) 🚨 Error : 아마 이 글을 보는 당신은 Access denied for user 'root'@'localhost' (using password: Yes)로 가득한 블로그에서 해답을 찾지 못하고 들어오지 않았을까 싶다. 구글링을 통해 확인할 수 있는 도커 컨테이너 내 mysql 접근 거부 원인은 여러 가지가 있는데 나의 경우 어떤 블로그도 해결책을 제시하지 못했다. 그러니 열받아서 들어온 당신이 내 글을 보고 해결이 되었으면 하는 바람이다. 간단하게 요약하면 자바 프로젝트의 데이터베이스 연결을 도커 컨테이너의 mysql로 지정했는데 접속이 되지 않았다. docker-compose.yaml version: "3.9" services: mysql: container_name: mysql image: 'm.. 2023. 8. 22.
😡 JPA에서 같은 엔티티를 비교할 때 assertEquals()가 실패하는 이유와 해결방법(@Transactional, @EqualsAndHashCode) 🚨 Error : @SpringBootTest @Slf4j public class PostgreDbTest { @Autowired PostgreRepository postgreRepository; @Test public void save() throws Exception { // 테스트 인스턴스 생성 Address address = new Address("서울시", "강남대로", "12345"); Map additionalInfo = new HashMap(); additionalInfo.put("주급", 1000); additionalInfo.put("팀", "PSG"); Member member = new Member( "이강인", 20, "010-1234-5678", "독서", address, add.. 2023. 8. 15.
😡 h2 데이터베이스 - Database "mem:testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) 🚨 Error : 테스트를 위해 새로운 프로젝트 만들고 스프링부트를 실행했다. 그런데, db 연결 메시지가 나오지 않았다. application.yml 파일에 h2를 인메모리 모드로 사용하도록 설정하고 실행을 했는데 db가 생성되었다는 실행 문구가 나오지 않았다. localhost:8080/h2-console에 들어가 확인해 보니 정상적으로 들어가지는데.. 사진에서처럼 접속이 되지 않았다. 에러메시지는 데이터베이스를 찾을 수 없다는 내용이었고 미리 만들거나 원격 db 생성을 allow 하지만 보안 상 추천하지는 않는다는 문구가 함께 나왔다. 인메모리 db면 데이터베이스를 만들어두지 않아도 서버 실행 시 자동으로 만들어져야 하는 거 아닌가 하는 생각이 들었는데 아니었나 보다. 🤓 원인 : 인터넷에 검색해 .. 2023. 8. 12.
😡 error: cannot find symbol variable log 해결하기 🚨 Error : 스프링 부트 프로젝트 테스트 코드 작성 중에 @Slf4j cannot find symbol 에러가 발생했다. 🤓 원인 : error: cannot find symbol log.info("key: " + header.get(j) + "value: " + rowData.get(header.get(j))); ^ symbol: variable log location: class excelParsingTest 1 error FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileTestJava'. > Compilation failed; see the compiler error out.. 2023. 8. 10.
😡 spring boot h2 사용 시 db 생성하는 방법(Database "디렉터리 경로" not found, either pre-create it or allow remote database creation 해결 방법) 🚨 Error : 스프링 부트에 H2를 연결하여 테스트 코드를 작성하던 중에 애플리케이션 실행이 되지 않으면서 Database "디렉터리 경로" not found, either pre-create it or allow remote database creation라는 에러가 떴다. 🤓 원인 : 이 에러는 말 그대로 프로젝트와 연결된 데이터베이스를 찾을 수 없어서 생기는 문제로 프로젝트에 사용하는 데이터베이스를 먼저 생성해줘야 한다. 나의 경우에는 과거에 실수로 db를 지우고, 한참 뒤에 프로젝트를 열고 실행하다가 문제가 발생한 것이다. 🚒 해결 : 반드시 순서대로 진행하자. h2 콘솔에 들어가 만지다가 잘 안되었다면 h2를 끄고 다시 킨 다음 아래 방법을 따라하면 된다. 이것저것 연결을 누른 것 때문에 충.. 2023. 6. 25.
😡 org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation 해결하는 방법 🚨 Error : 테스트 케이스를 만드는 도중에 위와 같은 에러를 만났다. 처음보는 에러였다. 2023-06-12 21:49:45.377 WARN 2933 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation] 로그를 보니 이러한 문구가 나왔다. 🤓 원인 : 인터넷에 찾아보니 HttpMediaTypeNotAcceptableException 예외는 클라이언트가 요청한 미디어 타입을 생성할 수 없을 때 발생하는 것 같다. 핸들러 메서드가 클라이언트로.. 2023. 6. 12.
728x90