【发布时间】:2015-12-06 14:26:23
【问题描述】:
我正在使用 Flink(最新通过 git)从 kafka 流式传输到 cassandra。为了简化单元测试,我通过 Dagger 添加了依赖注入。
ObjectGraph 似乎设置正确,但 Flink 将“内部对象”标记为“不可序列化”。如果我直接包含这些对象,它们会起作用 - 那么有什么区别?
有问题的类实现了 MapFunction 和 @Inject 一个用于 cassandra 的模块和一个用于读取配置文件的模块。
有没有办法构建它,以便我可以使用后期绑定,还是 Flink 使这成为不可能?
编辑:
fwiw - 依赖注入(通过 dagger)和 RichMapFunction 不能共存。 Dagger 不允许您在定义中包含任何具有 extends 的对象。
进一步:
通过 Dagger Lazy
线程“主”org.apache.flink.api.common.InvalidProgramException 中的异常:对象 com.someapp.SaveMap@2e029d61 不可序列化
...
引起:java.io.NotSerializableException: dagger.internal.LazyBinding$1
【问题讨论】:
标签: java serialization dagger apache-flink