Programming/Error 23

jar 실행 시 log4j2.xml 파일 못 찾는 경우 (ERROR StatusLogger No Log4j 2 configuration file found.)

jar 실행 시 /resources/log4j2.xml 파일을 못 찾고 오류가 발생하는 경우 스프링 프로젝트에서 로깅 구현체로 log4j2를 사용하는 과정에서 '/src/main/resources/' 경로에 'log4j2.xml' 파일이 있어 이클립스 환경에서는 로깅이 정상적으로 동작했으나, 'Runnable Jar file'을 통해 jar 파일로 만들어 동작시켰을 때 resources 하위에 있는 Log4j2.xml 파일을 찾지 못하고 위와 같은 오류가 발생하였습니다. ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user pr..

Programming/Error 2024.03.02

eclipse Spring Legacy Project 생성 과정에서 발생한 오류

eclipse Spring Legacy Project 생성 과정에서 발생한 오류 '이클립스 환경에서 Spring Legacy Project를 생성하는 과정에서 발생한 아래 두 가지 오류와 해결 방법'을 정리한 내용입니다. 관련 오류들이 발생하는 가장 주된 원인은 eclipse와 java 버전이 호환되지 않아 발생하는 것이며, sts 버전에 따라서도 원인과 해결 방법이 다를 수 있다는 점 참고 부탁드립니다. * 오류가 발생했던 작업 환경은 다음과 같습니다. macOS Monterey 12.5.1 버전 / eclipse 2022-03 (4.23.0) 버전 / Spring Tools 3 (Standard Edition) 3.9.14.RELEASE / Spring Tools 3 Add-On for Spring ..

Programming/Error 2024.01.07

(docker) maven:3.6.3-jdk-8: no match for platform in manifest

(docker) no match for platform in manifest 해당 에러는 Apple M1(Silicon) 환경에서 docker image를 build 하는 과정 중 발생한 문제입니다. M1 환경은 기본적으로 ARM 기반 아키텍처인데요. 때문에 해당 환경에서 도커 이미지를 빌드하면 platform이 'linux/arm64'로 생성됩니다. 발생한 에러 메시지인 'maven:3.6.3-jdk-8: no match for platform in manifest...'라는 문구를 통해 원인을 유추해 보면 'maven:3.6.3-jdk-8'을 사용하는데 platform이 맞지 않는다? 정도로 생각해 볼 수 있었는데요. 관련 정보를 찾아보던 중 일부 docker image에서 Apple M1 칩을 지원..

Programming/Error 2023.10.25

@RedisHash keyspace 사용 시 주의할 점 (RedisKeyValueAdapter)

얼마 전 @RedisHash를 통해 redis를 사용하는 과정에서 @Indexed 어노테이션을 통해 secondary index를 적용한 필드에 대해 ttl(time to live)가 적용되지 않는 현상을 해결하는 방법에 대한 포스팅을 하였는데요. 2023.05.26 - [Programming/Spring Boot] - RedisHash 사용 시 @Indexed 필드 TTL(timeToLive) 적용 안되는 문제 RedisHash 사용 시 @Indexed 필드 TTL(timeToLive) 적용 안되는 문제 @RedisHash @Indexed field ttl not working Spring Boot에서 @RedisHash + RedisRepository(CrudRepository를 상속받은)를 통해 인..

Programming/Error 2023.06.22

PropertyReferenceException: No property found for type 발생 원인과 해결 방법

PropertyReferenceException: No property found for type 발생 원인과 해결 방법 작업 중 'PropertyReferenceException: No property found for type' 예외가 발생하였고, 원인을 찾는데 한 시간이 넘게 걸렸지만 원인은 결국 아주 사소한 것(오타)이었는데요. jpa, querydsl을 사용하며 생각보다 자주 만날 수 있는 오류인 것 같았으며, 발생한 케이스 외에도 몇 가지 비슷한 경우가 있어 함께 정리한 내용입니다. (아래 예시에서 사용된 NoticeMember는 단순 예시를 위한 Entity 명입니다.) Caused by: org.springframework.data.mapping.PropertyReferenceExcepti..

Programming/Error 2023.06.17

(querydsl) cannot find symbol: javax.annotation.processing.Generated

QueryDSL cannot find symbol: javax.annotation.processing.Generated querydsl 사용 중 Q클래스를 생성한 뒤 프로그램을 실행했을 때 'javax.annotation.processing 패키지에서 Generated class를 찾지 못한다는 오류'가 발생했습니다. 해당 오류는 지난번에도 한번 발생했었는데, 이번에도 같은 오류가 발생했고 오류의 원인이 궁금하여 내용을 찾아보게 되었습니다. 해결 방법 1. 첫 번째 시도 우선 첫 번째로 시도한 방법은 Q클래스의 import javax.annotation.processing.Generated 부분을 import javax.annotation.Generated로 수동으로 바꾸는 것입니다. import jav..

Programming/Error 2023.04.19

JPA 예약어로 인한 구문 오류 해결 방법 (check the manual that corresponds to your MariaDB server version for the right syntax to use near 'order …’)

jpa 예약어로 인한 구문 오류 발생 시 해결하는 방법 jpa를 사용한 데이터 조회 작업 중 아래와 같은 'SQLSyntaxErrorException'이 발생했습니다. 해당 구문은 원래 정상적으로 동작하던 구문으로, 프로세스상의 필요에 의해 기존에 다른 이름으로 되어 있던 테이블 명만 'order'로 바꿨기 때문에 구문 상의 문제는 아닐 것이라고 생각했는데요. java.sql.SQLSyntaxErrorException: (conn=14730) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'order order..

Programming/Error 2023.04.19

Redis 데이터 타입, (error) WRONGTYPE Operation against a key holding the wrong kind of value

(error) WRONGTYPE Operation against a key holding the wrong kind of value 다음은 Redis 사용 중에 볼 수 있는 오류로 내용처럼 잘못된 타입으로 인해 발생하는 오류인데요. Redis에서 사용되는 데이터 타입과 각 타입 별 내용 및 데이터를 가져오는 명령어에 대해서 살펴보겠습니다. type * Redis에서 데이터 타입을 확인하기 위해서는 위 type 명령어를 사용할 수 있습니다. 1. String 가장 기본적인 Redis 데이터 유형인 'String'입니다. String 타입의 경우 텍스트, 직렬화된 객체 및 이진 배열을 포함한 바이트 시퀀스를 저장하며, Redis에서 사용되는 String type의 기본적인 크기는 최대 512MB입니다. * ..

Programming/Error 2023.03.05

(Hibernate) Unknown table 'SEQUENCES' in information_schema 원인과 해결 방법

Unknown table 'SEQUENCES' in information_schema INFO 22239 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:mysql://localhost:3306/testdb?autoReconnect=true' INFO 22239 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] INFO 22239 --- [ restartedMai..

Programming/Error 2023.01.10

block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-nio-3

WebClient 사용법을 학습하던 중 발생한 오류입니다. WebClient는 비동기식 웹 애플리케이션 구축을 위한 WebFlux의 기능 중 일부로 RestTemplate 클라이언트를 대체하는 새로운 API이며, 비차단 및 반응 웹 클라이언트입니다. (Blocking 또는 Non-Blocking HTTP 요청을 모두 만들 수 있으며 Spring5 릴리즈 이후로 권장되는 방식입니다.) public ResponseEntity getTest() { ResponseSpec responseSpec = webClient.mutate().build() .get() .uri("http://localhost:8082/webServer/get") .retrieve(); ResponseEntity result = respo..

Programming/Error 2021.12.28