spring cloud openfeign 을 사용하기 위해 관련 dependency를 넣고 springboot 기동을 했는데 아래와 같은 오류가 발생했다. Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:..
spring cloud openfeign 을 사용하는데 오류가 발생하였다. Caused by: java.lang.IllegalStateException: Method has too many Body parameters: public abstract byte[] com.example.demo.testFeign.encryption(java.lang.String,java.lang.String,java.lang.String) Warnings: - at feign.Util.checkState(Util.java:129) ~[feign-core-10.10.1.jar:na] at feign.Contract$BaseContract.parseAndValidateMetadata(Contract.java:127) ~[feig..
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.io.File` out of START_OBJECT token at [Source: (PushbackInputStream); line: 1, column: 1] at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59) ~[jackson-databind-2.11.4.jar:2.11.4] at com.fasterxml.jackson.databind.DeserializationContext.reportInputMi..
MSA 프로젝트를 진행중인데 API 서버간의 트랜잭션 처리(보상 트랜잭션 이라고도 한다.)를 kafka를 이용해서 하기로 하였다. kafka는 RabbitMQ 처럼 Message Queue를 사용하여 비동기 처리를 가능하게 하는 역할을 담당하고 있고 결합도가 낮고 속도가 빠르다는 장점을 가지고 있어서 최근 MSA를 하는데 있어서 많이 사용된다. 일단은 머리가 좋지 않기에 이론을 공부하기 앞서 kafka를 설치를 해보고 프로토타이핑을 해봄으로써 감을 잡아 나가려고 한다. 갑자기 Docker가 말썽이라 로컬 Windows에 설치를 진행을 하게 되었다. 나중에 Linux 환경에도 다시 설치를 할 계획이다. 환경은 Windows 10 을 사용하고 JDK는 OpenJDK 11을 사용하고 있다. 다운로드 (kafk..
Eclipse에서 Git Pull할때 DIRTY_INDEX 오류가 발생하는 경우가 있다. 이 오류가 발생하는 원인은 pull을 받으려면 인덱스가 CLEAN (변경이 안된)한 상태 이어야 하는데 변경이 되어서 DIRTY 상태가 되어서이다. 이런 인덱스를 정리하려면 stash 를 변경을 해줘야 한다. (working tree 문제도 동일) Eclipse에서 DIRTY_INDEX Failed 조치를 하려면 git repo에서 프로젝트를 우클릭을 하고 Stashes를 눌러서 Stash Changes... 를 눌러준다. 그럼 위와 같은 창이 나올것이고 적당한 commit message를 넣어준다. 그 다음 다시 pull을 받으면 위와 같이 정상적으로 Merge가 된 것을 확인할 수 있다. 끝!
지난 시간에는 Springdoc을 사용하는 한 사이클에 대해서 봤다면 이번시간에는 어떻게 상세하게 내가 원하는대로 설정을 할 수 있는지에 대해서 알아보겠다. OpenAPI 설정 지난시간에 application.yml 파일에 springdoc을 설정한 부분이다. springdoc: swagger-ui: path: animal.html version: v1 paths-to-match: - /bear/** - /dog/** 여기에 나온 내용들은 문서 맨 아래의 참고에 있는 properties 표에서 내가 원하는 속성을 찾아서 설정을 해줄 수 있다. springdoc에서 샘플로 제공한 application.yml 의 모습은 다음과 같다. (일반적으로 사용할거라고 예상하여 샘플을 만들었으므로 거의 이 모습에서 크..
지난번에 JavaDoc이라던지 JSDoc을 사용하는 방법에 대해서 다룬적이 있었다. 이와 마찬가지 맥락으로 API Docs을 생성하는 방법도 있다. MSA가 유행을 하며 이로 구성된 시스템은 수많은 API Service를 관리해야 한다. 그리고 또한 이 API Service를 사용자들이 쉽게 이용할 수 있어야 한다. 이를 편하게 자동으로 해주는것이 OpenAPI 3.0 spec을 이용하여 구현한 Springdoc이라는 녀석이다. 어떻게 사용하는지 간단히 알아보자. (API Docs을 가능하게 해주는건 크게 Springfox Swagger와 SpringDoc 이렇게 크게 두가지가 있는데 최근 Spring에서 밀고 있는건 이름에서도 느낌이 오겠지만 SpringDoc이다. 이에 대해 자세하게 기술이 된 포스팅..
이클립스에서 git을 사용하면 여러가지 문제와 직면하게 된다. 그중 가장 골치가 아픈것이 충돌(Conflict) 문제인데 이에 대해 간단하게 해결하는 방법에 대해 소개하고자 한다. Pull Conflict pull 을 받고 commit & push를 하려고 했는데 위와 같은 오류창이 뜨며 pull이 정상적으로 진행되지 않는다. 누군가가 작성한 소스와 내가 작성한 소스가 충돌이 나는 것이다. 위 오류 로그에는 pom.xml, WebConfig.java, validation.properties 파일이 충돌이 난다고 한다. 해결을 하기 위해서 Git Staging view를 활용을 한다. 이클립스에서 git을 사용하면 Git Staging은 필수이다. 이클립스 상단의 Window > Show View > ot..