트러블슈팅

트러블슈팅

[트러블슈팅] org.springframework.web.bind.MissingServletRequestParameterException 에러

1. 개요기존에 단건 조회 기능만 있던 상황에서 새롭게 복수 조회 기능을 추가했는데, 모니터링 툴 상에서 갑자기 500 에러가 급증하는 것을 보고 급히 확인에 들어갔다. 에러 로그와 API 구성(재현 코드)는 아래와 같았다.에러 로그org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter '...' for method parameter type List is not present at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValueInternal(RequestParam..

트러블슈팅

[트러블슈팅] Kotlin에서 An annotation argument must be a compile-time constant이 발생하는 문제

개요 Bean Validation을 이용해 정규표현식으로 검증을 하다보니 동일한 정규표현식이 여러 객체에 사용되는 케이스가 많았다. 기존엔 정규표현식을 String의 형태로 넣어줬었지만 이 방식은 유지보수하기가 까다로웠다. 프로젝트의 규모가 점점 커지면서 검증 로직을 수정해달라는 요청이 종종 들어오는데, 해당 검증 로직을 사용하는 객체를 매번 찾아다녀야 했기 때문이다. 그래서 아래와 같이 이넘을 이용해 정규표현식을 상수화시켜서 관리하고자 했다. AS-IS @field:Pattern( regexp = "^\\d{5}\$", message = "우편번호는 5자리입니다." ) val zoneCode: String, TO-BE - 이넘 클래스를 활용한 상수화 enum class RegexConst( val re..

트러블슈팅

[트러블슈팅] inteilliJ에서 Syntax highlighting has been temporarily because of an internal error 발생

개요 며칠 전에 인텔리제이 대몬이 돌아가고 있는 상태에서 급하게 꺼버렸더니 IDE에서 특정 클래스 파일을 인식하지 못하는 문제가 발생했다. 문제가 발생한 OrderAcceptService에는 코드 하이라이팅이 모두 사라져버렸고, 마치 메모장에 코드를 적는 것처럼 IDE의 어떤 기능도 사용할 수 없었다. 처음에는 프로젝트를 다 지워버리고 다시 pull 받아서 해결했지만.. 같은 문제가 또 발생해서 근본적인 문제를 해결하기로 결정했다. 해결 인텔리제이와 같은 IDE는 내부적으로 인덱싱 기법을 활용하는데, 인덱스가 꼬여버려서 발생한 문제인 듯 하다. 인덱싱을 초기화 시킨 후 다시 시켜주면 해결된다. 1) File > Repair IDE 2) 클릭하면 대몬이 돌아가고 우측 하단에 알럿이 뜬다. 여기서 "Ever..

트러블슈팅

[트러블슈팅] org.springframework.dao.InvalidDataAccessApiUsageException: javax.persistence.Query.executeUpdate requires active transaction

개요 API 테스트하는데 문제가 생겨서 로그를 찾아봤더니 다음과 같은 에러가 발생하는 것을 확인할 수 있었다. 로그는 친절하게 트랜잭션이 걸려야 하는 상황에 트랜잭션이 걸리지 않아서 예외가 발생했음을 알려주고 있다. org.springframework.dao.InvalidDataAccessApiUsageException: javax.persistence.Query.executeUpdate requires active transaction; nested exception is javax.persistence.TransactionRequiredException: javax.persistence.Query.executeUpdate requires active transaction at org.springfra..

트러블슈팅

[트러블 슈팅] IO 오류: Socket read interrupted (SQL Error: 17002, SQLState: 08006)

개요 API를 통해 오라클 DB에 데이터를 INSERT하려고 했는데 다음과 같은 에러가 발생했다. o.h.e.jdbc.spi.SqlExceptionHelper [WARN ] : SQL Error: 17002, SQLState: 08006 o.h.e.jdbc.spi.SqlExceptionHelper [ERROR] : IO 오류: Socket read interrupted o.s.orm.jpa.JpaTransactionManager [DEBUG] : Participating transaction failed - marking existing transaction as rollback-only o.s.orm.jpa.JpaTransactionManager [DEBUG] : Setting JPA transacti..

코택
'트러블슈팅' 카테고리의 글 목록 (2 Page)