输入通道订户未在Spring Cloud数据流中使用自定义接收器

时间:2017-06-09 12:29:45

标签: java spring-cloud-dataflow sink

我试图将我自己的Spring云数据流自定义接收器部署到云代工厂。

我的依赖关系如下:

    <dependencies>
    <dependency>
            <groupId>org.springframework.cloud.stream.app</groupId>
            <artifactId>spring-cloud-starter-stream-sink-log</artifactId>
        </dependency>       
           <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>         
           </dependency>        
            <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
            <version>1.2.0.RC1</version>        
           </dependency>    
   </dependencies>
    <dependencyManagement>      
        <dependencies>          
          <dependency>
                <groupId>org.springframework.cloud.stream.app</groupId>
                <artifactId>app-starters-core-dependencies</artifactId>
                <version>1.2.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>           
           </dependency>            
           <dependency>
                <groupId>org.springframework.cloud.stream.app</groupId>
                <artifactId>log-app-dependencies</artifactId>
                <version>1.2.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>           
             </dependency>      
          </dependencies>   
    </dependencyManagement>


And the custom code is very basic as below :

    @EnableBinding(Sink.class)
    public class SinkConfiguration {
        private static final Log logger = LogFactory.getLog(SinkConfiguration.class);

        @ServiceActivator(inputChannel=Sink.INPUT)
        public void loggerSink(String payload) {
            logger.info("Hello, Rahul. The time is: " + payload);
        }
    }

我在部署此应用程序时看到的是创建了错误通道订阅者,但没有创建输入订阅者。因此,此应用程序未收到任何消息。此应用程序的源是带有休息控制器的自定义源。默认的开箱即用流媒体应用程序 - LogSink成功运行。但是我需要创建一个最好的东西来建造东西。有人看到我在这里缺少的问题吗?

1 个答案:

答案 0 :(得分:1)

如果您的目标是创建一个全新的自定义接收器,则可以按照Spring Initializr过程将其开发为独立应用程序。这种方式很简单,在这种情况下您不需要使用现有的log-sink启动器。

如果您要修补任何OOTB应用程序;在这种情况下,log-sink,然后按patching procedure。注意导入配置类。除非你这样做,否则相关的app-starter的行为将无法启动。

此外,您似乎正在使用旧版本的兔子粘合剂。最好依赖Spring Initializr生成的工件,而不是手工制作依赖版本。