Dev/Trouble Shooting
Error: LinkageError occurred while loading main class rokaf.hackathon.backend.BackendApplication java.lang.UnsupportedClassVersionError: rokaf/hackathon/backend/BackendApplication has been compiled by a more recent version of the Java Runtime (class file
요약InteliJ의 Java Runtime이 올바르지 않은 버전과 매칭됐을 때 발생하는 오류이다.나의 경우, Java 11로 Spring Boot 3.x 버전을 실행하려고 해서 발생했다.단순히 InteliJ의 설정만 변경해 주면 정상 동작한다. 해결우측 상단에 'Edit Configurations' 를 클릭한다. 아래와 같이 Spring Boot 와 호환되는 Java 버전인지 확인한다.필자의 경우 Spring Boot 3.x 을 사용하므로 Java 11에서 17로 변경해주었다.
No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.x.x was found. The consumer was configured to find a runtime of a library compatible with Java 16, packaged as a jar, and its dependencies declared externally, as well as attribut
요약Spring Boot Freamwork를 Gradle에서 Build할 때 정보를 올바르게 받아오지 못해서 발생하는 오류이다.나의 경우, Java 11를 통해 Spring Boot 3을 셋팅하는 과정에서 오류가 발생했다.나와 동일하다면 Java 버전을 17이상으로 업그레이드 시켜주면 된다. 해결첫 번째로 build.gradle 파일에 자바 몇 버전으로 명시되어 있는지를 확인해야 한다.아래와 같이 17 이상이라면 상관 없다. 두 번째로 InteliJ의 Settings 값이 잘못되어 있을 수도 있다.아래와 같이 Gradle JVM 버전이 자바 17 이상인지 확인해 보자.
java.lang.NullPointerException: null at springfox.documentation.schema.Example.equals(Example.java:131) ~[springfox-core-3.0.0.jar:3.0.0] 오류
요약접근 제어자를 실수로 public으로 했더니 오류가 발생했다.코드 내에서 lombok의 AllArgsConstructor를 통해 생성자 함수를 대체했는데, 이 부분이 문제였다.public 접근 제어자를 사용하면 lombok이 인식하지 못해 생성자 함수가 자동으로 생성되지 않게 된다.그 결과 to 필드가 초기화되지 않은 상태인 null이 된다. 이로 인해, springfox 문서화 도구는 해당 값에 대해 null를 뱉는 것이었다. 이런 사소한 실수는 정말 찾기 힘든 것 같다.원인 분석까지 했으니 다음에는 절대 실수하지 말아야지. 해결아래와 같이 접근 제어자를 public -> private으로 변경하면 된다.@Getter@AllArgsConstructorpublic class PostNaverMailS..
InteliJ 콘솔에서 한글이 출력되지 않을 때
요약 해당 증상은 원인이 워낙 많을 것 같아서 지속적으로 해당 게시물을 업데이트하면서 관리할 예정이다. 해결 1. InteliJ Custom VM Options 설정하기 아래와 같이 Console Encoding 값을 UTF-8로 설정한다. 정상적으로 한글이 출력되는 모습이다. JDK 버전에 따라 안 되는 경우도 있다고 하는데, 적어도 JDK 11에서는 정상적으로 동작하는 것 같다.
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 오류
요약 알파메일(alphamail.co.kr) 서비스 기능 중 네이버 메일을 IMAPS 프로토콜로 받아오는 연동 기능이 있다.로컬에서 메일이 정상적으로 받아와지는지 확인 중에 아래와 같은 오류가 발생했다. javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) SSL 핸드쉐이크 과정에서 지원하지 않는 프로토콜을 사용했다는 오류이다. jdk 11 버전부터는 TLS 1.0 ~ 1.1를 더 이상 지원하지 않는 것으로 보여 강제로 TLS 1.2를 사용하도록 설정해서 해결했다. 해결 네이버 메일 서비스와 세션을 연결하기 위해서는 시스템의 속성(props) 객체..
'참조된 계정이 현재 잠겨 있으므로 그 계정으로 로그온할 수 없습니다' RDP 로그인 오류
요약 군대에서 공부하려고 집 PC에 80번 포트로 포트포워딩을 해서 RDP를 구성해 놨었다. 그런데, 80번 포트로 RDP를 열어놓다보니 외부에서 공격자가 포트 스캔을 때린 뒤 나의 RDP에 브루트포스 공격을 시도하고 있었다. 원래였으면 Well Known 포트 외에 다른 포트를 사용하는 방식으로 해결했겠지만, 사지방 특성상 어차피 Well Known 포트가 아니면 RDP를 사용할 수 없었기 때문에 다른 방법을 찾아서 해결했다. 완벽한 해결 방법은 아니지만, 급하게 조치라도 할 수 있으니 참고하면 도움이 될 것 같아 작성했다. 해결 우선, '참조된 계정이 현재 잠겨 있으므로 그 계정으로 로그온할 수 없습니다' 오류에 대해서 알아보자. 윈도우의 이벤트 뷰어를 열어보면 아래와 같이 무수히 많은 '감사 실패'..