【问题标题】:Infinispan deserialization white list : Class '[I'Infinispan 反序列化白名单:Class '[I'
【发布时间】:2020-06-11 17:27:03
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: java infinispan


    【解决方案1】:

    [Iint[] 的内部名称,因此您可以使用以下任意名称:

    .addClass​("[I")
    
    .addClass​(int[].class.getName())
    
    .addClasses(int[].class)
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-30
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 2021-11-12
      相关资源
      最近更新 更多