inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

kafka connector 등록 후 조회 시 에러

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

강의에서 알려주신대로 my-source-connect라는 connector를 등록한 후 http://localhost:8083/connectors 로 GET 조회시 아래와 같이 connector가 잘 뜨는 것을 확인하고 http://localhost:8083/connectors/my-source-connect/status 로 GET 조회시 아래와 같은 오류 메시지가 응답됐습니다. { "name": "my-source-connect", "connector": { "state": "FAILED", "worker_id": "127.0.0.1:8083", "trace": "java.lang.NoSuchMethodError: 'boolean org.apache.kafka.common.utils.Utils.isBlank(java.lang.String)'\n\tat io.confluent.connect.jdbc.util.StringUtils.isNotBlank(StringUtils.java:79)\n\tat io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getJdbcCredentialsProvider(GenericDatabaseDialect.java:2010)\n\tat io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.<init>(GenericDatabaseDialect.java:192)\n\tat io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect.<init>(MySqlDatabaseDialect.java:67)\n\tat io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect$Provider.create(MySqlDatabaseDialect.java:57)\n\tat io.confluent.connect.jdbc.dialect.DatabaseDialects.findBestFor(DatabaseDialects.java:134)\n\tat io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:87)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:185)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:210)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:349)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:332)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat java.base/java.lang.Thread.run(Thread.java:840)\n" }, "tasks": [], "type": "source" } kafka connect 터미널 로그에는 다음과 같이 찍혀있었습니다. [2024-10-13 23:15:36,747] ERROR WorkerConnector{id=my-source-connect} Error while starting connector (org.apache.kafka.connect.runtime.WorkerConnector:193) java.lang.NoSuchMethodError: 'boolean org.apache.kafka.common.utils.Utils.isBlank(java.lang.String)' at io.confluent.connect.jdbc.util.StringUtils.isNotBlank(StringUtils.java:79) at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getJdbcCredentialsProvider(GenericDatabaseDialect.java:2010) at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.<init>(GenericDatabaseDialect.java:192) at io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect.<init>(MySqlDatabaseDialect.java:67) at io.confluent.connect.jdbc.dialect.MySqlDatabaseDialect$Provider.create(MySqlDatabaseDialect.java:57) at io.confluent.connect.jdbc.dialect.DatabaseDialects.findBestFor(DatabaseDialects.java:134) at io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:87) at org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:185) at org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:210) at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:349) at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:332) at org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140) at org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) [2024-10-13 23:15:36,747] ERROR [Worker clientId=connect-1, groupId=connect-cluster] Failed to start connector 'my-source-connect' (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1339) org.apache.kafka.connect.errors.ConnectException: Failed to start connector: my-source-connect at org.apache.kafka.connect.runtime.distributed.DistributedHerder.lambda$startConnector$5(DistributedHerder.java:1305) at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:335) at org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140) at org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) 다음은 제가 시도해본 해결방법 3가지 입니다. 테이블 이름 수정 https://www.inflearn.com/community/questions/618181/source-connector-%EC%98%A4%EB%A5%98?srsltid=AfmBOooaiA_jLl3ijo0mPjPhnhjM4FQeCSDVdXjgXAAHMsN7sojnFkIR users 테이블은 예약어라고 해서 user1으로 수정해서 POST 요청을 보냈을 때는 아래와 같이 응답이 잘 왔습니다. mariadb-java-client.jar 파일 올바른 폴더에 넣기 https://www.inflearn.com/community/questions/970970/kafka-connectors-%EC%97%90%EB%9F%AC?srsltid=AfmBOoopKwFbCFMIgaLAKg5-4urO7Fzzxwl2ChzmqH8evzNEc4H1ECsD 다음 글을 참고해서 mariadb-java-client.jar 파일을 아래와 같이 kafka 폴더에 옮겨 놓았습니다 플러그인 확인 https://www.inflearn.com/community/questions/245034/localhost-8083-connectors-%ED%98%B8%EC%B6%9C%EC%8B%9C-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%B0%9C%EC%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4?srsltid=AfmBOophiRaXpfFVHkArBbyirgaPdUfbGUP2W8o5Px-k_ZZDJ2b7wgmf 다음 글을 참고해서 http://localhost:8083/connector-plugins [ { "class": "io.confluent.connect.jdbc.JdbcSinkConnector", "type": "sink", "version": "10.8.0" }, { "class": "io.confluent.connect.jdbc.JdbcSourceConnector", "type": "source", "version": "10.8.0" }, { "class": "org.apache.kafka.connect.file.FileStreamSinkConnector", "type": "sink", "version": "6.1.0-ccs" }, { "class": "org.apache.kafka.connect.file.FileStreamSourceConnector", "type": "source", "version": "6.1.0-ccs" }, { "class": "org.apache.kafka.connect.mirror.MirrorCheckpointConnector", "type": "source", "version": "1" }, { "class": "org.apache.kafka.connect.mirror.MirrorHeartbeatConnector", "type": "source", "version": "1" }, { "class": "org.apache.kafka.connect.mirror.MirrorSourceConnector", "type": "source", "version": "1" } ] 다음과 같이 응답이 왔습니다. jdbc connector는 잘 등록된 것 같습니다.. 뭐가 문제일까요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
Strongkmh 댓글 2 좋아요 1 조회수 384

회원 서비스 테스트 회원가입() assertThat()

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] assertThat()메소드의 도큐먼트에서는 assertThat(실젯값).isEqualTo(기댓값)이라고 정의되어 있지만, 5분 13초 쯤에 김영한 강사님께서 회원가입() 메소드를 테스트하는 과정에서 assertThat() 메소드를 작성하실때 assertThat(member.getName()).isEqualTo(findMember.getName()); 라고 하셨는데 실제로는 assertThat(findMember.getName()).isEqualTo(member.getName()); 이렇게 정의하는게 맞지 않나요? 확인부탁드립니다!

  • java
  • spring
  • mvc
  • spring-boot
soojinkimss 댓글 1 좋아요 0 조회수 382

assertEquals(), assertThat()

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] 강사님께서 assertEquals() 메소드는 괄호 안에 assertEquals(expected기댓값, actual실제값), assertEquals(member, result) 하셨고, assertThat(member).isEqualTo(result); 작성하셨는데 제가 assertThat 메소드 도큐먼트를 확인하니 assertThat(actual실제값).isEqualTo(expected기대값) 으로 정의 되어있어서 그렇게 된다면, assertThat(result).isEqualTo(member) 해야 올바르게 작성하는 코드 아닌가요?

  • java
  • spring
  • mvc
  • spring-boot
soojinkimss 댓글 1 좋아요 1 조회수 480

[주문조회 4V; jpa에서 DTO 직접 조회] 응답으로 DTO 전달 시, enum 과 값 타입 포함 관련

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요, 강의에서 궁금한 점이 있어 질문 드립니다. 응답으로 엔티티를 그대로 반환하는 것이 아닌, DTO 를 반환하는 이유 중 하나가 엔티티 변경 시, API 스펙에도 영향이 가는 것을 방지하기 위함이라고 이해했습니다. 그렇다면, 4:35 분 경, OrderQueryDto 를 구성할 때, Entity 에서, 해당 값들을 받아올 때, 1) Address 와 같은 값 타입이나, OrderStatus 와 같은 enum 들도, 별도의 Dto 로 만들어서 반환해야 되는것인지, 2) 그게 아니라면, 값 타입이나, Enum 값은 변경이 별로 없다는 것을 전제로 하고, 그대로 내려줘도 되는 것일지 3) 둘 다 이유가 될 경우, 최종적으로는, 회사 별 코드 스타일대로 따르면 될지 질문드려요.

  • java
  • spring
  • spring-boot
  • jpa
김지환 댓글 1 좋아요 0 조회수 177

혹시 대규모로 메일 발송을 해야할 땐 어떤 조치를 해야하나요?

해결됨

개발 입문을 위한 실무자가 알려주는 Spring Boot

혹시 대규모로 메일 발송을 해야할 땐 어떤 조치를 해야하나요? 이번에 회사에 대량의 이메일을 발생할 일이 있는데... 어떤준비를 해야할지 모르겠어서 조언을 구하고싶습니다.

  • aws
  • spring-boot
  • jpa
YOGURT 댓글 2 좋아요 0 조회수 695

템플릿의 대한 정보는 sesclient에 왜 넘겨주나요?

해결됨

개발 입문을 위한 실무자가 알려주는 Spring Boot

템플릿의 대한 정보는 sesclient에 왜 넘겨주나요? 그냥 문자열 값같은데 메일 템플릿의 대한 내용이라면 그건 어디에 저장하고 있어야되는건지 궁금합니다.

  • aws
  • spring-boot
  • jpa
YOGURT 댓글 2 좋아요 0 조회수 143

정적 리소스 파일 설정 질문입니다.

미해결

스프링 시큐리티 OAuth2

application.yml에서 마지막에 web : static-path-pattern : /static/** 이걸 안하면 static 폴더 아래에 있는 정적 리소스 파일이 html파일에 적용이 안되는데 왜이런건가요? 이전에는 해당 코드가 yml에 없었어도 제대로 됐었던것같은데 이유가 뭔가요? 그리고 정적 리소스 파일의 디폴트값은 원래 /static 아닌가요?

  • java
  • spring
  • spring-boot
  • oauth
에욱 댓글 1 좋아요 0 조회수 264

작동하는 방법

해결됨

Spring Boot를 활용하여 채팅 플랫폼 만들어보기

이거 작동 확인하려면 source_code에 있는 client와 server 동시에 실행 시켜서 작동 확인해보면 되나요?

  • mysql
  • spring-boot
  • jpa
  • jwt
  • websocket
조은형 댓글 2 좋아요 0 조회수 196

클라이언트 인가 후 저장 질문

미해결

스프링 시큐리티 OAuth2

클라이언트가 인가서버로부터 인가를 받으면 authorizedClient가 생성되는데, 이 생성된 authorizedClient는 세션에 저장돼서 다음 요청일때 이 세션에서 객체를 가져와 인가처리된 클라이언트인지 아닌지 확인하는건가요? 마치 인증완료후 authentication 객체가 securityContext에 저장되고, 이 컨텍스트가 세션에 저장되는것처럼 작동하는건가요?

  • java
  • spring
  • spring-boot
  • oauth
댓글 2 좋아요 0 조회수 137

도메인형 패키지 구조 질문

미해결

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

안녕하세요. 강의에서 사용하는 도메인형 패키지 구조는 도메인 주도 설계(DDD) 원칙이 적용된 구조라고 봐도 될까요?

  • spring-boot
  • jpa
  • web-api
yangyang 댓글 1 좋아요 0 조회수 273

hello-static.html과 index.html의 차이

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

localhost:8080 만 실행했을 때 같은 static폴더 내에 있지만 hello-static.html가 아닌 index.html가 웹 창에 뜬 이유가 궁금합니다.

  • java
  • spring
  • mvc
  • spring-boot
지명헌 댓글 2 좋아요 0 조회수 269

인용구의 출처가 궁금합니다.

미해결

토비의 스프링 부트 - 이해와 원리

안녕하세요. 강의 마지막에 조영호님의 프레임워크에 대한 견해를 소개해주셨는데요. 조영호(프레임워크3부) 라는 설명이 달려있는데 프레임워크3부 라는 것이 무엇인지 알 수 있을까요?

  • spring
  • spring-boot
  • spring-jdbc
창신동 장첸 댓글 1 좋아요 0 조회수 288

강사님이 보시는 문서 볼 수 있는 곳이 있나요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강사님이 보시는 문서 볼 수 있는 곳이 있나요?

  • java
  • spring
  • mvc
  • spring-boot
불스택개발자 댓글 1 좋아요 0 조회수 746

authentication server 토큰 검증 api 테스트 질문

미해결

스프링 시큐리티 OAuth2

현재 / oauth2/token 에 접근하지 못하는 문제가 있는 것으로 보입니다. 제가 확인해봐야할 내용이 어떤게 있을까요? 동영상에서 37:33쪽에 있는 내용하고 비교를 해봤을 때, 현재로썬 authenticated 가 다르다게 진행이 되고 있어서 질문드립니다.

  • java
  • spring
  • spring-boot
  • oauth
댓글 2 좋아요 1 조회수 221

인증처리에서 SecurityContext 질문입니다.

미해결

스프링 시큐리티 OAuth2

컨트롤러에서 직접 사용자 인증처리를 구현하는데 마지막에 Oauth2AuthenticationToken을 SecurityContextHolder를 사용해 securityContext에 저장하는데, 이 처리는 이번 요청이 끝나면 securityContext가 초기화되므로 securityContext를 세션에도 저장해줘야 하는거 아닌가요?

  • java
  • spring
  • spring-boot
  • oauth
에욱 댓글 2 좋아요 0 조회수 190

Order import 문제

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

<orderServiceTest> <OrderService> Order의 import를 domain에 있는 Order class로 했는데 왜 위와 같은 오류가 나는지 모르겠습니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
gg 댓글 1 좋아요 0 조회수 86

로그인 인증 후 처리 질문입니다.

미해결

스프링 시큐리티 OAuth2

처음 로그인 인증처리받을때는 인가서버로부터 code를 받기 전에 유저의 동의가 필요하므로 유저가 아이디, 비밀번호를 입력하는 과정이 필요합니다. 그리고 이후 로그인 인증처리 완료되면 서버 세션에 SecurityContext 가 저장되고 인가서버에도 해당 유저의 세션이 저장되고 인증처리가 끝납니다. 근데 서버를 종료하고 재시작하면 서버의 세션이 초기화되므로 인증처리가 처음부터 다시 시작해야 될거같은데 서버 종료 후 다시 인증처리 받기 시작할땐 유저가 아이디, 비밀번호를 입력하는 과정 없이 authorizationEndpoint로 인가서버에 요청하기만 하면 인증과정이 성공합니다. 이유가 뭔가요?

  • java
  • spring
  • spring-boot
  • oauth
에욱 댓글 1 좋아요 0 조회수 119

인증성공 후 로직 질문입니다.

미해결

스프링 시큐리티 OAuth2

지금 처음 인증성공받을때 인가서버로부터 accessToken 발급받고 이 토큰으로 유저정보 가져와서 인증성공후 securityContext, 세션에 저장합니다. 그리고 인증성공받은 이후에는 그러면 인증받았는지 안받았는지는 세션에서 SecurityContext 객체를 가져와서 인증여부를 체크하는건가요? 그렇다면 OAuth2 사용하지않고 그냥 Spring Security만 사용했을때랑 차이가 처음 인증과정만 달라지는거고 이후에는 똑같이 인증객체를 세션에 저장해서 사용하는거니까 인증후에는 로직이 똑같은건가요?

  • java
  • spring
  • spring-boot
  • oauth
에욱 댓글 2 좋아요 0 조회수 341

logoutHandler 질문입니다.

미해결

스프링 시큐리티 OAuth2

로그아웃 api 설정에선 logoutSuccessHandler, invalidateHttpSession, clearAuthentication, deleteCookies 만 설정했는데 logoutFilter에 왜 인가서버에 로그아웃을 요청하는 logoutHandler가 있는건가요? OAuth2 라이브러리 의존성 추가하면 자동으로 추가되는건가요? 맞다면 logout api설정으로 먼저 클라이언트에서 세션, 쿠키, 인증 객체를 제거하고 이후 인가서버에서 해당 유저의 세션을 제거하는 logoutHandler가 호출돼서 인가서버에서 세션 삭제하고, 로그아웃 성공했으니 logoutSuccessHandler에서 설정한 RedirectUri로 이동하는건가요? 아니면 클라이언트에서 인증정보 제거후 logoutSuccessHandler에 설정한 객체가 호출돼고 이 Handler에서 인가서버에 세션제거하고 redirect하게 하는건가요?

  • java
  • spring
  • spring-boot
  • oauth
에욱 댓글 1 좋아요 0 조회수 203

MemberService 통합테스트에 MemberRepository 질문 입니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] MemberService 통합 테스트시 MemberService와 MemberRepository를 @Autowired로 의존성을 주입하는데요 여기서 MemberRepository를 주석처리 해도 테스트가 잘 되는데 SpringConfig에서 주입해주기 때문일까요?

  • java
  • spring
  • mvc
  • spring-boot
박기자 댓글 2 좋아요 0 조회수 195

인기 태그

인프런 TOP Writers

주간 인기글