스프링 통합: 메시지가 생산자 엔드포인트에서 소비자 엔드포인트로 전달되지 않습니다.

크리슈나 데이

생산자 끝점이 'inputChannel'에 메시지를 보내고 소비자 끝점이 inputChannel에서 메시지를 읽고 ackChannel에 응답을 보내는 프로그램을 작성했습니다.

아래 코드 스니펫을 찾으세요.

@Component
public class ProducerEndpoint {

    @ServiceActivator(outputChannel = "inputChannel")
    public Message<String> produceMessage(String message) {
        return MessageBuilder.withPayload("Message Received").build();
    }

    @ServiceActivator(inputChannel = "ackChannel")
    public void receiveAcknowledgement(String message) {
        System.out.println("From Consumer : " + message);
    }

}

소비자 엔드포인트

@Component
public class ConsumerEndpoint {
    
    @ServiceActivator(inputChannel = "inputChannel", outputChannel = "ackChannel", requiresReply="true")
    public Message<String> consumeMessage(Message<String> message) {
        System.out.println("From Producer : " + message);
        return MessageBuilder.withPayload("Message Received").build();
    }
}

생산자 엔드포인트에 생성 메시지 방식을 사용하여 메시지를 보낼 때 소비자 'consumeMessage' 방식에 도달하지 않습니다. 여기에 누락된 것이 있습니까?

producerEndpoint.produceMessage("Hello World");

하지만 inputChannel에 직접 메시지를 보내면 consumerMessage 메소드로 수신하고, ReceiveAcknowledgement 메소드로 응답을 보낸다.

ProducerEndpoint를 아래와 같이 MessagingGateway로 모델링하면 모든 것이 잘 작동합니다.

@Component
@MessagingGateway(name = "myGateway", defaultRequestChannel = "inputChannel")
public interface ProducerEndpoint {

    @Gateway(requestChannel = "inputChannel", replyTimeout = 2, requestTimeout = 200)
    public void produceMessage(String message);
    

}

메서드를 직접 호출할 때 서비스 활성제가 outputchannel에 메시지를 보낼 수 없습니까?

게리 러셀

Spring Integration 개념을 잘못 이해하신 것 같습니다.

@ServiceActivator메서드를 직접 호출하는 것은 메시징과 관련하여 아무 것도 하지 않습니다.

엔드포인트에 메시지를 보내려면 게이트웨이 또는 다른 메시징 메커니즘을 사용해야 합니다.

임의의 메서드에 주석을 달아 메서드 호출 결과를 메시지로 게시할 있습니다@Publish .

https://docs.spring.io/spring-integration/docs/current/reference/html/message-publishing.html#message-publishing

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

이메일로 Square API 검색 사용자 - 엔드포인트는 레거시 샌드박스에서 지원되지 않습니다.

격리 된 엔진 엔드 포인트에서 작동하지 않는 자산

선택자에도 불구하고 Kubernetes 서비스가 엔드 포인트를 생성하지 않음

동일한 마이크로 서비스에서 OAuth2 엔드 포인트 및 사용자 데이터 엔드 포인트를 구현해야합니까?

RESTful API에 대한 CRUD 메소드 및 엔드 포인트가 프록시 API 서버에서 생성되지 않음

백엔드 렌더링 된 프런트 엔드 경로에 액세스하는 사용자가 인증되었는지 어떻게 확인해야합니까?

JSON 본문을 사용한 POST 요청은 스프링 부트 마이크로 서비스 아키텍처에서 엔드 포인트로 전달되지 않습니다.

서비스 참조를 추가 할 때 app.config에서 엔드 포인트가 생성되지 않음

Laravel에서 사용자 지정 HTTP 메서드로 엔드 포인트 테스트

Unix 도메인 소켓 전달 파일 디스크립터-sendmsg : 전송 엔드 포인트가 연결되지 않았습니다

웹 서비스 사용-로컬 엔드 포인트 XXX가 존재하지 않습니다.

서비스 레지스트리 서버의 엔드 포인트를 어디에 저장해야합니까?

C 프로그램에서 "엔드 포인트가 연결되지 않음"으로 TCP 소켓이 실패 함

웹 서비스 : 메시지를 보낸 엔드 포인트를 어떻게 감지합니까?

Angular 7 앱을 다른 포트에서 실행되는 백엔드 엔드 포인트로 프록시

Cloudformation의 VPC 엔드 포인트-엔드 포인트 유형 (Gateway)이 사용 가능한 서비스 유형 ([Interface])과 일치하지 않습니다.

실행중인 생산자 및 소비자 Python 스크립트에서 소비자가 표시하는 메시지가 없습니다.

메시지를 수락할 수 있는 net.tcp://url에서 수신하는 엔드포인트가 없습니다. 이는 종종 잘못된 주소 또는 SOAP 작업으로 인해 발생합니다.

''에 대한 HTTP 응답을받는 동안 오류가 발생했습니다. 이는 HTTP 프로토콜을 사용하지 않는 서비스 엔드 포인트 바인딩 때문일 수 있습니다.

Google Colab 스크립트에서 "전송 엔드 포인트가 연결되지 않았습니다."

닌자 프레임 워크 엔드 포인트 사용자 정의 개체에 JSON을지도하려고 500 오류가 발생합니다

Google 로그인 엔드 포인트가 더 이상 사용자 이름을 반환하지 않습니다.

Spring Boot https 엔드 포인트로 사용자 지정 Alexa 스킬을 생성 할 수 있습니까?

웹 사이트가 배포될 때 클라이언트 URL에 액세스하는 동안 "...에서 수신하는 엔드포인트가 없습니다." 오류가 발생하지만 dev에서는 제대로 작동합니다.

지정된 엔드 포인트가있는 Kubernetes 서비스를 통해 서비스에 액세스 할 수 없습니다.

.Net 4.6 업그레이드 후 Visual Studio 테스트 단계에서 CI 빌드 오류-실행자 프로세스가 종료되었습니다. net.pipe에서 수신하는 엔드 포인트가 없습니다.

자동 새로 고침은 OPTIONS 프리 플라이트에서 인증하지만 UserInfo 엔드 포인트에 대한 GET에서는 인증하지 않습니다.

Kubernetes에서 Ballerina 기반 마이크로 서비스를 배포 할 때 메트릭 엔드 포인트가 작동하지 않음

Spring Cloud Stream (Hoxton) Kafka 생산자 / 소비자가 EmbeddedKafka와의 통합 테스트에서 작동하지 않음

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관