spring-cloud-stream对象" spring.cloud.stream'中的字段错误在字段'绑定[输入]'

时间:2016-04-06 04:22:55

标签: spring-cloud-stream

我研究了春天的云流,遇到了一些问题。

@EnableBinding(Source.class)
public class SendSource {

    private String format = "yyyy-MM-dd HH:mm:ss";

    @Bean
    @InboundChannelAdapter(value = Source.OUTPUT, poller = @Poller(fixedDelay = "5000", maxMessagesPerPoll = "1"))
     public MessageSource<String>  send(){

        return ()->new GenericMessage<>(new SimpleDateFormat(this.format).format(new Date()));

    }

接收器:

@EnableBinding(Sink.class)
public class SinkMoudle {
    @ServiceActivator(inputChannel=Sink.INPUT)
    public void loggerSink(Object payload) {
        System.out.println("Received: " + payload);
    }
}

启动应用程序时,redis-cli:

1459914852.842206 [0 127.0.0.1:49630] "PING"
1459914857.627916 [0 127.0.0.1:49630] "ZRANGEBYSCORE" "groups.testtock" "1.0" "1.7976931348623157E308"
1459914862.633039 [0 127.0.0.1:49630] "ZRANGEBYSCORE" "groups.testtock" "1.0" "1.7976931348623157E308"

问题是:

  

1:redis-cli出口应该像&#34; 2016-04-06 12:07:19&#34; , 但它   不

     

2:控制台错误:

2016-04-06 12:16:02.505 ERROR 74368 --- [           main] o.s.b.b.PropertiesConfigurationFactory   : Properties configuration failed validation
    2016-04-06 12:16:02.505 ERROR 74368 --- [           main] o.s.b.b.PropertiesConfigurationFactory   : Field error in object 'spring.cloud.stream' on field 'bindings[input]': rejected value [testtock]; codes [typeMismatch.spring.cloud.stream.bindings[input],typeMismatch.spring.cloud.stream.bindings,typeMismatch.bindings[input],typeMismatch.bindings,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [spring.cloud.stream.bindings[input],bindings[input]]; arguments []; default message [bindings[input]]]; default message [Failed to convert property value of type [java.lang.String] to required type [org.springframework.cloud.stream.config.BindingProperties] for property 'bindings[input]'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.cloud.stream.config.BindingProperties] for property 'bindings[input]': no matching editors or conversion strategy found]
    2016-04-06 12:16:02.562  INFO 74368 --- [           main] o.s.s.c.ThreadPoolTaskScheduler          : Initializing ExecutorService  'taskScheduler'
    2016-04-06 12:16:02.604 ERROR 74368 --- [           main] o.s.b.b.PropertiesConfigurationFactory   : Properties configuration failed validation
    2016-04-06 12:16:02.604 ERROR 74368 --- [           main] o.s.b.b.PropertiesConfigurationFactory   : Field error in object 'spring.cloud.stream' on field 'bindings[input]': rejected value [testtock]; codes [typeMismatch.spring.cloud.stream.bindings[input],typeMismatch.spring.cloud.stream.bindings,typeMismatch.bindings[input],typeMismatch.bindings,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [spring.cloud.stream.bindings[input],bindings[input]]; arguments []; default message [bindings[input]]]; default message [Failed to convert property value of type [java.lang.String] to required type [org.springframework.cloud.stream.config.BindingProperties] for property 'bindings[input]'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.cloud.stream.config.BindingProperties] for property 'bindings[input]': no matching editors or conversion strategy found]
    2016-04-06 12:16:02.604  WARN 74368 --- [           main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bindingService' defined in class path resource [org/springframework/cloud/stream/config/ChannelBindingServiceConfiguration.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.springframework.cloud.stream.config.ChannelBindingServiceProperties]: Error creating bean with name 'spring.cloud.stream.CONFIGURATION_PROPERTIES': Could not bind properties to ChannelBindingServiceProperties (prefix=spring.cloud.stream, ignoreInvalidFields=false, ignoreUnknownFields=true, ignoreNestedProperties=false); nested exception is org.springframework.validation.BindException: org.springframework.boot.bind.RelaxedDataBinder$RelaxedBeanPropertyBindingResult: 1 errors
    Field error in object 'spring.cloud.stream' on field 'bindings[input]': rejected value [testtock]; codes [typeMismatch.spring.cloud.stream.bindings[input],typeMismatch.spring.cloud.stream.bindings,typeMismatch.bindings[input],typeMismatch.bindings,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [spring.cloud.stream.bindings[input],bindings[input]]; arguments []; default message [bindings[input]]]; default message [Failed to convert property value of type [java.lang.String] to required type [org.springframework.cloud.stream.config.BindingProperties] for property 'bindings[input]'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.cloud.stream.config.BindingProperties] for property 'bindings[input]': no matching editors or conversion strategy found]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.cloud.stream.CONFIGURATION_PROPERTIES': Could not bind properties to ChannelBindingServiceProperties (prefix=spring.cloud.stream, ignoreInvalidFields=false, ignoreUnknownFields=true, ignoreNestedProperties=false); nested exception is org.springframework.validation.BindException: org.springframework.boot.bind.RelaxedDataBinder$RelaxedBeanPropertyBindingResult: 1 errors
    Field error in object 'spring.cloud.stream' on field 'bindings[input]': rejected value [testtock]; codes [typeMismatch.spring.cloud.stream.bindings[input],typeMismatch.spring.cloud.stream.bindings,typeMismatch.bindings[input],typeMismatch.bindings,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [spring.cloud.stream.bindings[input],bindings[input]]; arguments []; default message [bindings[input]]]; default message [Failed to convert property value of type [java.lang.String] to required type [org.springframework.cloud.stream.config.BindingProperties] for property 'bindings[input]'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.cloud.stream.config.BindingProperties] for property 'bindings[input]': no matching editors or conversion strategy found]
    2016-04-06 12:16:02.605  INFO 74368 --- [           main] o.s.s.c.ThreadPoolTaskScheduler          : Shutting down ExecutorService 'taskScheduler'
    2016-04-06 12:16:02.611  INFO 74368 --- [           main] o.apache.catalina.core.StandardService   : Stopping service Tomcat
    2016-04-06 12:16:02.679 ERROR 74368 --- [           main] o.s.boot.SpringApplication               : Application startup failed

1 个答案:

答案 0 :(得分:1)

看起来您正在尝试使用环境变量来设置绑定属性。如果是这样,您将遇到提及here的问题 正如there中所建议的那样,您可以使用SPRING_APPLICATION_JSON传递env变量。