我在项目上同时使用Infinispan和休眠模式,但遇到了奇怪的错误日志:
ISPN000936:类别'[I'被反序列化白名单阻止。调整配置序列化白名单正则表达式以包括此类
我已经遇到了这个问题,但是具有正常的类名,因此可以通过将类添加到序列化白名单中来解决此问题,如下所示:
globalConfigurationBuilder
.serialization()
.marshaller(new JavaSerializationMarshaller())
.whiteList()
.addClass(MyClass.class.getName());
但是使用这个奇怪的类名(
'[I'
),我无法做到这一点。我可以通过授权序列化白名单中的所有类来解决该问题,如下所示:
globalConfigurationBuilder
.serialization()
.marshaller(new JavaSerializationMarshaller())
.whiteList()
.addRegexp(".*");
但我想以更适当的方式解决这个问题。
有人遇到过同样的问题并设法解决了吗?
最佳答案
[I
是int[]
的内部名称,因此您可以使用以下任意一种:
.addClass("[I")
.addClass(int[].class.getName())
.addClasses(int[].class)
当您有多个时,我将使用最后一个,这是一种vararg方法,例如
.addClasses(MyClass.class,
FooClass.class,
BarClass.class,
int[].class)
关于java - Infinispan反序列化白名单:类别[[I],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60437650/