java.lang.IllegalArgumentException:无法序列化myclass

时间:2017-05-19 19:03:12

标签: java google-app-engine google-cloud-dataflow

我使用的是Google Dataflow,但遇到了错误

def doThing(){
    module2.someFunction2()
}
来自SerializableUtils.class的

甚至我定义了serialVersionUID。我怀疑原因可能是我导入了JRE Class While List 未列出的非标准java库。在我的情况下,我导入javassist。我只是想证实这是事实。

2 个答案:

答案 0 :(得分:1)

事实证明,导入的第三方库是否在JRE类上,而列表与此错误无关。 Dataflow在计算引擎上运行,不限于app引擎白名单。我的错误的罪魁祸首是由于引入了一个不可序列化的类成员,即使该类本身实现了Serializable接口。

答案 1 :(得分:0)

序列化是关于类中的字段 - 因为这是将现有Java对象转换为字节序列的过程;基于该对象的内容

Java源代码中的 import 只是提示编译器了解名称的来源。

换句话说:在B类的源代码中导入A类并不一定意味着A类将被序列化。您需要在B中为该部分设置A类型的字段!