将 ConversionService 添加到 Spring Cloud Stream
Adding ConversionService to Spring Cloud Stream
我正在使用 Spring 集成和 String Cloud Stream。我有一个 header,我希望我的 HTTP 网关使用它,它有一个 Long 值,但默认情况下它不能从 Long 转换为 String,因此显示错误 Consider registering a Converter with ConversionService
.
因此,我尝试添加自己的 LongToStringConverter class 和以下 Bean,以便可以使用 LongToStringConverter:
@Bean
public ConversionService conversionService()
{
DefaultConversionService service = new DefaultConversionService();
service.addConverter( new LongToStringConverter() );
return service;
}
然后收到如下错误:Dispatcher has no subscribers
.
如果我仅 return 来自上述 bean 的 DefaultConversionService
实例,我仍然收到错误。
当我删除上面的 bean 并在设置 header 值时简单地将 Long 值转换为 String 并且工作正常。是否可以改用 ConversionService?如果是那么怎么办?
首先 已经有 ConversionService
: https://docs.spring.io/spring-integration/docs/4.3.12.RELEASE/reference/html/messaging-endpoints-chapter.html#payload-type-conversion。它有一些预定义的转换器。所以,你应该考虑在这件事上使用@IntegrationConverter
。
另一方面,您根本不清楚为什么需要这样做。我想知道为什么当你首先声明 header 时 Long.toString()
对你来说还不够。
我正在使用 Spring 集成和 String Cloud Stream。我有一个 header,我希望我的 HTTP 网关使用它,它有一个 Long 值,但默认情况下它不能从 Long 转换为 String,因此显示错误 Consider registering a Converter with ConversionService
.
因此,我尝试添加自己的 LongToStringConverter class 和以下 Bean,以便可以使用 LongToStringConverter:
@Bean
public ConversionService conversionService()
{
DefaultConversionService service = new DefaultConversionService();
service.addConverter( new LongToStringConverter() );
return service;
}
然后收到如下错误:Dispatcher has no subscribers
.
如果我仅 return 来自上述 bean 的 DefaultConversionService
实例,我仍然收到错误。
当我删除上面的 bean 并在设置 header 值时简单地将 Long 值转换为 String 并且工作正常。是否可以改用 ConversionService?如果是那么怎么办?
首先 已经有 ConversionService
: https://docs.spring.io/spring-integration/docs/4.3.12.RELEASE/reference/html/messaging-endpoints-chapter.html#payload-type-conversion。它有一些预定义的转换器。所以,你应该考虑在这件事上使用@IntegrationConverter
。
另一方面,您根本不清楚为什么需要这样做。我想知道为什么当你首先声明 header 时 Long.toString()
对你来说还不够。