문제 상황 필드 변수를 선언할때 @RequiredArgsConstructor를 이용하기 위해 항상 하던 것처럼 @Value 변수를 선언할 때에도 private final로 선언했지만 다음과 같은 에러가 발생했다. 코드 import org.springframework.beans.factory.annotation.Value; @Slf4j @Service @Transactional @RequiredArgsConstructor public class Test { @Value("${email}") private final String EMAIL;콘솔 stdout Unsatisfied dependency expressed through constructor parameter 0; nested exception is..
상황 Gradle로 멀티모듈 프로젝트를 구성하려고 할 때 하위 프로젝트 (e.g. batch, api server)에서 상위 프로젝트 (e.g. core)의 dependency(e.g. lombok, jpa)를 보지 못 하고 컴파일이 되지 않는 문제가 발생함. 기존 코드 project(':batch-server') { bootJar.enabled = true jar.enabled = false dependencies { compile project(':core') } } compile은 Gradle 7부터 완전히 제거되었으므로 compileOnly, api 등과 같은 다른 키워드로 바꿔서 해봐도 컴파일이 되지 않음. 해결한 코드 //Before compile project(:'core') //or com..
스웨거2를 이용하여 문서화를 진행하던 도중 API별로 깔끔하게 모아서 정리하고 싶었으나 아래와 같이 @Api 어노테이션의 description이 deprecated되어 사용할 수 없는 문제가 발생했다. @Api(tags = "tag", description = "태그") //deprecated public class MyApiController { 해당 문제에 대해 찾아보니 이미 2015년 부터 해당 issue가 있었고 2019년도까지는 deprecated된 속성을 계속 써왔던걸로 보인다. 원인 해당 문제에 대한 원인은 Swagger 1.X 버전에서는 @Api의 description 속성을 통해 그룹화했었지만 Swagger 2.X 버전에서 tags라는 속성을 통해 그룹화를 하게 되며 해당 어노테이션간의 ..
정말 단순하게 spring security 설정으로 인해 해당 endpoint를 접근할 수 없어 발생한 문제였다. 에러 메시지가 좀 더 자세하게 나왔었다면 더 금방 트러블 슈팅했겠지만 시큐리티 문제임에도 에러 메시지가 "INVALID" is not a valid start token라니..프로메테우스 할아버지가 와도 뭐가 문제인지 모를 것같다.. 해결 방법 actuator 관련 endpoint에 접근할 수 있게 다음과 같이 설정한다. @Override public void configure(WebSecurity web) { web.ignoring().antMatchers("/actuator/**"); } httpBasic 설정도 해주어야 하는줄 알았으나 해당 설정을 제거해도 잘 동작하는 것으로 보아 단순..
springboot 2.6.7 springfox 2.9.2 버그 발생 상황 트래픽 모니터링을 위해 actuator와 prometheus 의존성 추가를 하려고 하니 정말 밑도 끝도 없이 caused by: java.lang.nullpointerexception: null이 발생하며 프로젝트가 실행되지 않았다. stacktrace도 안 나오고 그냥 에러 메시지 하나만 딸랑 던지고 끝내버려서 매우 당황스러웠다. 아무리 찾아봐도 딱 핀포인트하게 해당 에러에 대해서 알려주는 내용이 없어 이런 저런 글을 읽다보니 계속해서 Swagger 얘기가 나온다.설마하고 해당 내용에 대해서 좀 자세히 찾아보니 다음과 같은 글을 찾았다. Springfox broke my JPA tests, and the actuator for ..
문제 배포 환경과 개발 환경이 달라짐에 따라 기존에 개발 환경에서만 사용하던 URL들을 환경변수로 꺼내서 개발, 배포 환경에 따라 다르게 값이 들어가야 했다. application.properties에 url을 꺼내 @Value("${host.url}")로 선언하고 사용하는 방법으로 사용하고자 결정했고 그대로 구현하였으나 아래와 같은 에러가 발생하며 프로젝트가 빌드되지 않는 문제가 발생했다. Parameter 0 of constructor in required a bean of type 'java.lang.String' that could not be found @Service @Transactional @AllArgsConstructor public class ItemService { @Value("$..
개발 서버와 운영 서버가 다른 경우 개발 서버에서 젠킨스를 통해 빌드하고 운영 서버에 커맨드나 빌드 파일을 보내게 된다. 본인은 도커 허브에 이미지를 올리고 운영 서버에는 쉘스크립트만 보내 도커허브에서 이미지를 받아 사용하도록 하고자 했었는데 다음과 같은 오류가 발생하였다. ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [1]] Build step 'Send build artifacts over SSH' changed build result to UNSTABLE 이때 본인은 젠킨스를 통해 단 한줄의 명령어만 보내고 있었다. docker-compose up -d 너무 당연히 발생한 문제로 docke..
Entity를 생성할때 @Embbeded를 통해서 코드를 생성하는 경우가 빈번한데 Embeddable로 선언된 Class 내에 있는 모든 값이 전부 null일 경우에 Class 자체가 null이 되어버려서 해당 클래스를 사용하려고 할때 NullPointerException이 발생해버린다. 일단 문제를 해결하기 전에 ORM의 기본 스펙이 Embeddable은 null이 되어서는 안 된다는 것이다. 만약 원칙을 반드시 지키면서 하고자 한다면 설계를 다시 확인해보는 것이 좋을 것같다. 해결 방법 해결 방법은 크게 2가지가 있다. 절대 null일 수가 없는 값을 미리 만들어 넣는 방법 예를 들어 생성되는 날짜가 Embeddable 내에 반드시 포함되게 하여 최소한 값 하나는 null이 되지 않도록 하는 방법을 ..
*************************** APPLICATION FAILED TO START *************************** Description: The dependencies of some of the beans in the application context form a cycle: pagingApiController defined in file ┌─────┐ | qnaService defined in file ↑ ↓ | sellerService defined in file └─────┘ Action: Relying upon circular references is discouraged and they are prohibited by default. Update your a..
검색 결과에 따라서 리스트를 반환해주는 기능을 구현하다가 위와 같은 버그를 만났다. 맨 처음 결과값은 잘 나오는데 그 두번째부터 값이 출력되지 않고 저 버그만 출력됨 원인 https://stackoverflow.com/questions/71642208/parameter-value-gabrek-did-not-match-expected-type-java-lang-character-n-a 하이버네이트 구현체에 의한 버그로 5.6.6과 5.6.7 그 이상에서 발생하는 버그라고 한다. 원인은 캐싱에 의한 문제일거라 사람들은 예상하던데 본인의 하이버네이트 버전은 5.6.8로 아직 안 고쳐진걸로 보아 문제가 오래 갈 수도 있을 것같다 public interface ItemRepository extends JpaRep..
- Total
- Today
- Yesterday
- ModelAttribute
- IDE
- 루나빔
- 레디스
- lunarvim
- neovim
- 아키텍처
- Dap
- RequestPart
- JavaScript
- RequestParam
- RequestBody
- 도커
- vim
- 배포
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |