Programing 76

Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError; java/xml/bind/JAXBException 오류 해결하기

maven 프로젝트를 gradle로 변환하면서 프로젝트 셋팅 중 아래와 같은 오류를 접하게 되었습니다. Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError; 문제 원인 분석 해당 오류는 jaxb-api를 호출하지 못하여 발생한 오류였고 생각보다 쉽게 해결이 가능했습니다. 문제 해결 build.gradle 파일에 아래와 같은 의존성을 추가해주면 해결됩니다. dependencies { implementation 'javax.xml.bind:jaxb-api:2.2.11' } 기타 jaxb-api에 대해 간단히 알아보도록 하겠습니다. jaxb-api? Java Architecture for XML Binding ..

Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream 오류 해결하기

메이븐 프로젝트에서 pom.xml 파일 변경 시 위와 같은 오류가 발생했다. Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream 내가 시도 및 해결한 방법은 아래와 같다. 1. target/surefire-reports 폴더 제거 ( 해결 x ) - 스택오버플로우를 찾아본 결과에 따라 target/surefire 폴더를 지우면 해결된다는 말이 있어서 시도해봤다. - maven을 package 시도 시 빌드 오류가 발생했을 경우 target에는 패키지가 준비되어있다고 인지되고 있는 상태임으로 계속 package하게 될 경우 동일한 오류가 반복되기 때문에 힙 할당으로 생성된 targe..

exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type 오류 해결하기.

안녕하세요 세기무민입니다. 이번 포스팅은 실무에서 역직렬화 관련하여 발생한 오류 해결과 관련하여 포스팅 해보려고 합니다. 실제 현업에서 사용하는 코드는 사용하지 못하기 때문에 예시 코드와 예시 내용으로 작성되는 포스팅입니다. 1. 문제 상황 설명 및 원인 파악 현재 제가 개발하고 있는 A라는 서비스에서 B라는 서비스를 호출하여 특정 맴버 값을 받아와야 하는 API라고 가정합시다. // A가 B에게 전달하려는 API Reqeust { memberSeq : Int, memberName : String, memberType : String } // A가 B에게 전달받은 API Response 값 { // Int memberSeq : 100112, // String memberName : "sg-moomin" ..

Spring + GraphQL Type/Input Type 활용 및 정리

안녕하세요. 세기무민입니다. 이번 포스팅에서는 Input Type에 대해 간략하게 정리해보려고 합니다. 실제 업무 중 사용한 내용을 기반하여 소스 코드는 예시, 실행 결과는 텍스트로 대체하겠습니다. GraphQL Type Type은 필드로 구성되며 각각의 필드는 특정 종류의 데이터를 반환하는 용도로 사용된다. 문자열, 커스텀 객체, 리스트 형태의 값을 반환 가능 GraphQL Input Type GraphQl의 Input Type은 말 그대로 입력 값을 의미한다. RestFul API로 비유하자면 파라미터 값 혹은 Body에 들어가는 값에 대해 미리 정의하는 것 Input Type은 단일, 객체 형태로 입력 가능하다. Input Type은 인자 관리를 조금 더 체계적으로 관리 가능하다. Inpyt Typ..

Programing/GraphQL 2023.04.10

Excepted a 'String' or 'java.time.temporal.TemporalAccessor' but was 'Date' 오류 해결 (spring-graphql)

안녕하세요. 세기무민입니다. 이번 포스팅은 아래 포스팅에서 발생 되었던 오류를 해결한 내용을 정리 차원에서 하는 포스팅입니다. 세무민의 코딩일기 : Spring Boot + GraphQL ScalarType 사용하기 안녕하세요. 세기무민입니다. 이번 포스팅의 프로젝트 기반은 아래의 포스팅의 연장선이라고 보시면 될 것 같습니다. 세무민의 코딩일기 : Spring Boot + GraphQL 연결하기 안녕하세요 세기무민입니 sg-moomin.tistory.com 아래의 내용과 같이 문제를 해결하였습니다. 오류 내용 오류 내용은 보이시는 것과 같습니다. 영어를 해석해보자면 String 형과 TimePoral을 제외하였으나 Date 형식이 다르다는 의미입니다. 즉 GraphQL에서 Scalar Type을 인식할 ..

세무민의 코딩일기 : Spring Boot + GraphQL ScalarType 사용하기

안녕하세요. 세기무민입니다. 이번 포스팅의 프로젝트 기반은 아래의 포스팅의 연장선이라고 보시면 될 것 같습니다. 세무민의 코딩일기 : Spring Boot + GraphQL 연결하기 안녕하세요 세기무민입니다. 이번 포스팅에서는 Spring Boot와 GraphQL을 사용해보도록 하겠습니다. GraphQL? GraphQL은 페이스북에서 만든 쿼리 언어입니다. GrahpQl은 웹 클라이언트가 데이터를 서버로부 sg-moomin.tistory.com 포스팅의 주제는 ScalarType과 graphql-scalar를 spring boot에서 사용하는 방법에 대해 정리하였습니다. (생각했던 것보다 잘 안풀려서 나름 삽질 엄청했네요...ㅠㅠ) 1. Scalar Type? GraphQL은 공식적으로 지원하는 자료형은..

Programing/GraphQL 2023.03.28

[Spring] Scheduling LockProvider 사용 목적과 사용 시 고려할 사항 정리

최근에 업무를 하다가 Scheduling 변경 사항이 존재하여 LockProivder에 대해 알아봤는데 내가 알아본 내용과 업무 시 고려해야 할 사항에 대해 간략하게 정리를 해보려고 한다. 1. LockProvider 사용 목적 및 의미 LockProvider를 사용하는 목적은 아래와 같다. - 스케줄러의 중복 실행 방지 - 실무에서 하나의 어플리케이션을 이중화 및 N중화를 한 경우가 대부분이다. 서버가 많으면 많을 수록 스케줄러의 Lock은 중요한 사항이 되며 이를 하지 않는 경우 어떤 서버가 배치를 처리해야 할 지 모르기 때문에 중복 실행이 될 수 있고 이는 큰 문제가 될 수 있다.(예를 들어 결제 시스템 새벽 배치인 경우 결제가 여러번 될 수 있다는 의미) - 따라서 순서와 관계 없이 1개의 서버가..

maven resources compiler : Maven Project Configuration for Module isn't~ 오류 해결하기

업무를 하다가 오랜만에 킨 프로젝트를 실행했더니 Maven 컴파일 오류가 떠서 오류 해결한 방법을 기록하려고 합니다. (요즘 포스팅을 못해서 쓸겸....그리고 나중에 내가 확인해야 할 사항이 될수 있기 때문...) 우선 프로젝트가 현재 메이븐 파일을 컴파일 못한다면 2가지 사항을 검토해봐야 한다. 1. 메이븐 설정이 정상적으로 되었는지 -> 나는 메이븐 설정과 conf 파일까지 매우 완벽하게 잘 설정되어 있었음으로 해당 문제는 X 2. 현재 프로젝트의 JDK/JRE 설정이 정상적으로 작동하는지? -> 내 생각에는 JDK 문제로 보였던게 메이븐에 알맞는 JDK로 빌드를 해야하는 케이스가 있는데 메이븐에서 요구하는 JDK 버전과 달라서 컴파일이 발생한 것으로 생각했다. 따라서 나의 처리 방안은 아래와 같다...

type definition for root mutation type 'mutation' not found 오류 해결

안녕하세요! 세기 무민입니다. 최근 들어 회사 업무하다가 조그만하게 GraphQL을 도입해보려고 생각중이라서 틈틈히 GraphQL+Spring 구조로 테스트 중인데 테스트를 하다가 발견한 오류?라기보단 실수를 공유해보려고 합니다. type definition for root mutation type 'mutation' not found 제가 접근했던 방식은 2가지입니다. 1. application.yml 파일에 선언한 GraphQL 내용 체크(해결 X) - tools / servlet에서 간혹 경로가 틀리거나 내용이 다르게 등록되어 오류가 발생할 수 있어서 이부분은 체크 포인트 2. graphqls schema 파일 확인(해결 O) "JSON Type" scalar JSON scalar DATE sche..

Programing/GraphQL 2023.01.30

세무민의 코딩일기 : application.yml 파일 내 변수 생성 후 @Value 호출 시 Null 가져오는 문제 해결

이번 포스팅은 회사에서 코딩하다가 해결한 사항이라서 코드는 직접 올리지 못하지만 아래와 같이 처리했다는 걸 기록용으로 남겨보려고 한다. // 해당 코드는 예시를 들어서 설명하기 위한 코드 /* * application.yml * / moomin: url : sg-moomin.tistory.com /* * Class * / @Component public class moomin(){ @Value("${moomin.url}") private String url; public string main(){ return url; } } 일단 위의 코드는 예시임으로 정확하지 않을 수 있다. 위의 소스만 봤을 때는 사실 문제 될 사항이 없다. 컴포넌트 어노테이션을 통해 스프링 DI도 연결한 상태임으로 null이 리턴된..