带有Kafka Streams Binders的Spring Cloud Stream:如何为Stream Processor设置`trusted.packages`不同于消费者和生产者

问题描述

我有一个简单的流处理器(不是消费者/生产者),看起来像这样(科特林)

uiConfig

这些类var uiConfig = { signInFlow: "popup",signInSuccessUrl: "/profile",signInoptions: [firebase.auth.EmailAuthProvider.PROVIDER_ID,firebase.auth.GoogleAuthProvider.PROVIDER_ID],callbacks: { // Create user entity upon new sign up signInSuccessWithAuthResult: async (authResult: any) => { const userInfo = authResult.additionalUserInfo; if (userInfo.isNewUser) { const data = { uid: userInfo.uid,username: userInfo.uid } try { const res = await Axios.post('http://localhost:3000/api/user/',data) console.log(res.data); } catch (e) { console.log(e); } } return false; } },}; @Bean fun processFoo():Function<KStream<FooName,FooAddress>,KStream<FooName,FooAddressplus>> { return Function { input-> input.map { key,value -> println("\nPAYLOAD KEY: ${key.name}\n"); println("\nPAYLOAD value: ${value.address}\n"); val output = FooAddressplus() output.address = value.address output.name = value.name output.plus = "$value.name-$value.address" keyvalue(key,output) }} } FooName与处理器在同一个程序包中。 这是我的配置文件

FooAddress

运行处理器时出现此错误

FooAddressplus

使用 Kafka Streams Binder流处理器时,将信任的程序包设置为所有内容的最佳方法是什么? (没有消费者/生产者,而是流处理器)

非常感谢!

解决方法

您可以在...binder.configuration下设置任意配置属性(Kafka流属性,serdes使用的属性等):

spring:
  cloud:
    streams:
      kafka:
        streams:
          binder:
            configuration:
              spring.json.trusted.packages: '*'