2017-10-26 6 views
0

에게 노출하는 I가 메시징 게이트웨이에 의해봄 통합 - 메시징 게이트웨이 오버로드 된 메서드

SomeInterface.java`를 노출하는 인터페이스

interface SomeInterface { 
    Outcome doSomething(String p1); 
    Outcome doSomething(String p1, String p2); 
} 

나머지-beans.xml 환경

<int:gateway id="rest.someRestClient" 
      service-interface="SomeInterface"> 
    <int:method name="doSomething" request-channel="rest.doSomething1"/> 
    <int:method name="doSomething" request-channel="rest.doSomething2"/> 
</int:gateway> 

<int:channel id="rest.someRestClient"/> 

<int-http:outbound-gateway url="${rest.http.url}/v1/doSomething1" 
          request-channel="rest.doSomething1" 
          http-method="POST" 
          message-converters="rest.messageConverter" 
          header-mapper="rest.headerMapper" 
          expected-response-type="Outcome"> 
</int-http:outbound-gateway> 

<int-http:outbound-gateway url="${rest.http.url}/v1/doSomething2" 
          request-channel="rest.doSomething2" 
          http-method="POST" 
          message-converters="rest.messageConverter" 
          header-mapper="rest.headerMapper" 
          expected-response-type="Outcome"> 
</int-http:outbound-gateway> 

인터페이스에 정의 된 두 가지 메소드를 모두 공개하는 방법이 명확하지 않습니다. 메소드가 오버로드됩니다.

위의 xml은 오버로드 된 메서드로 인해 작동하지 않습니다.

답변

1

@MessagingGateway 주석을 대신 사용하고 채널을 구성하는 방법에 대해서는 @Gateway을 사용하고 @IntegrationComponentScan과 함께 주석을 찾아서 XML과 같은 방식으로 게이트웨이를 생성합니다.