【问题标题】:Adding ConversionService to Spring Cloud Stream将 ConversionService 添加到 Spring Cloud Stream
【发布时间】:2017-10-10 12:59:27
【问题描述】:

我正在使用 Spring Integration 和 String Cloud Stream。我有一个我希望我的 HTTP 网关使用的标头,它有一个 Long 值,但默认情况下它不能从 Long 转换为 String,因此会显示错误 Consider registering a Converter with ConversionService

因此我尝试添加自己的 LongToStringConverter 类和以下 Bean,以便可以使用 LongToStringConverter:

@Bean
public ConversionService conversionService()
{
  DefaultConversionService service = new DefaultConversionService();
  service.addConverter( new LongToStringConverter() );
  return service;
}

然后收到以下错误:Dispatcher has no subscribers

如果我只从上面的 bean 返回一个 DefaultConversionService 的实例,我仍然会收到错误。

当我删除上面的 bean 而只是在设置标头值时将 Long 值转换为 String 并且没有错误。可以改用 ConversionService 吗?如果是那怎么办?

【问题讨论】:

    标签: spring-integration spring-cloud-stream


    【解决方案1】:

    首先已经是ConversionServicehttps://docs.spring.io/spring-integration/docs/4.3.12.RELEASE/reference/html/messaging-endpoints-chapter.html#payload-type-conversion。它有一些预定义的转换器。所以,你应该考虑在这件事上使用@IntegrationConverter

    另一方面,您根本不清楚为什么需要这样做。我想知道为什么 Long.toString() 在您首先声明该标头时对您来说还不够。

    【讨论】:

      猜你喜欢
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 2017-03-26
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多