PageNotFound, No mapping for ... 로그 해결하기
·
Framework & Runtime/SpringBoot
서비스를 운영하다보면 뭔지 모를 요청을 마구잡이로 요청하는 놈들이 매일 매일 수천건씩 생긴다. 서비스가 AWS 위에서 올라가다보니 로그가 CloudWatch에 적재가 되는데 이 모든것은 비용이 발생한다. 해당 에러메시지를 없애보기로 하였다. 로깅 레벨 변경resources/application.ymllogging.level.org.springframework.web.servlet.PageNotFound: ERROR 위 코드를 properties에 위 처럼 추가하면 WARN 단계인 사진의 에러메시지는 앞으로 찍히지 않게 된다. 그리고관련된 방법을 찾다가 이러한 요청을 하는 Client의 IP 주소를 출력했으면 좋겠다는 질의가 StackOverflow에 올라온 적이 있다. 이 글을 참고하면 관련한 솔루션을 ..
java.lang.IllegalArgumentException: Malformed escape pair at index 해결
·
Framework & Runtime/SpringBoot
Error creating bean with name 'postConstructInitializeBean': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Malformed escape pair at index redis 서버와 연동을 테스트 하려던 중 발생한 오류이다. lettuce 에서 뿜어낸 에러 같은데, RedisClient 를 create 할 때 입력해주는 비밀번호에 있는 특정 문자를 제대로 입력 받지 못하는 것 같다. 로 되어 있는 코드를 URLEncoder.encode() 를 이용하여 주었고, UTF-8 로 인코딩 하도록 했다. 이후 에러가 해결되었다. 필자의 경우에는 sprin..
[Kotlin] Unexpected error occurred in scheduled task (how to solve or fix)
·
Framework & Runtime/SpringBoot
해당 에러가 발생했을 때 검색을 해보니, Serializable 를 implements 하라고 합니다. 하지만 인텔리제이는 이 인터페이스를 불러올 줄을 모르고 있습니다. 위 에러 메세지에 힌트가 있습니다. java.io.Serializable 에러가 해결되었습니다 :)
Initialized JPA EntityManagerFactory for persistence unit 'default' Stuct 문제 해결
·
Framework & Runtime/SpringBoot
2021-09-28 09:44:56.028 INFO 24956 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 위의 메세지는 에러가 아닙니다. 하지만 Spring Application 를 Run 또는 Debug 할 경우 저 부분에서 계속 멈춰있게 됩니다. 해결 빌드 결과물에 문제가 생겼던 것 같습니다. gradle clean -> build 이후에 해결 되었습니다.
[Querydsl] 하나의 응답을 원할 때, exist 사용을 자제하자.
·
Framework & Runtime/SpringBoot
우선, 제가 아는 지식내에서는 exist 메소드를 사용함으로 얻는 이점이 없으므로 작성한 내용입니다. 1 2 3 4 5 6 7 8 public Boolean memberExists(Long memberId) { Integer findMember = queryFactory .selectOne() .from(member) .where(member.memberId.eq(memberId)) .fetchFirst(); return findMember != null; } Colored by Color Scripter cs 위처럼 fetchFirst() 를 이용하자. limit(1) 과 동일한 개념이며 사용시 원하는 결과를 찾을경우 쿼리가 종료되기 때문에 성능에 도움이 된다. exist()를 사용할경우 select에..
[Querydsl] 동적 쿼리를 BooleanExpression 으로 작성하기
·
Framework & Runtime/SpringBoot
우선 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 @Override public List findDynamicQuery(String name, String age, String phoneNumber) { BooleanBuilder builder = new BooleanBuilder(); if (!StringUtils.isEmpty(name)) builder.and(member.name.eq(name)); if (!StringUtils.isEmpty(age)) builder.and(member.age.eq(age)); if (!StringUtils.isEmpty(phoneNumber)) builder.and(member.phoneNumber.eq(phoneNumbeR)); retu..