首页 > 解决方案 > Infinispan 反序列化白名单:Class '[I'

问题描述

我在我的项目中使用 Infinispan 和 hibernate,我遇到了一个奇怪的错误日志:

ISPN000936:类“[I”被反序列化白名单阻止。调整配置序列化白名单正则表达式包含该类

我已经遇到了这个问题,但是使用了普通的类名,所以我可以通过将类添加到序列化白名单来解决问题,如下所示:

globalConfigurationBuilder
        .serialization()
        .marshaller(new JavaSerializationMarshaller())
        .whiteList()
        .addClass(MyClass.class.getName());

但是用这个奇怪的类名('[I')我不能这样做。我可以通过授权序列化白名单中的所有类来解决问题,如下所示:

globalConfigurationBuilder
        .serialization()
        .marshaller(new JavaSerializationMarshaller())
        .whiteList()
        .addRegexp(".*");

但我想以更恰当的方式处理这个问题。
有人遇到过同样的问题并设法解决了吗?

标签: javainfinispan

解决方案


[I是 an 的内部名称int[],因此您可以使用以下任何一种:

.addClass​("[I")

.addClass​(int[].class.getName())

.addClasses(int[].class)

当你有多个时,我会使用最后一个,这是一种可变参数方法,例如

.addClasses(MyClass.class,
            FooClass.class,
            BarClass.class,
            int[].class)

推荐阅读