当前位置: 首页 > 知识库问答 >
问题:

Infinispan反序列化白名单:Class'[I'

满元凯
2023-03-14

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

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

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

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

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

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

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

共有1个答案

严琨
2023-03-14

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

.addClass​("[I")

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

.addClasses(int[].class)

如果有多个,我会使用最后一个,这是一个vararg方法,例如。

.addClasses(MyClass.class,
            FooClass.class,
            BarClass.class,
            int[].class)
 类似资料:
  • 我正在玩弄一个基本的无限泛集群,我遇到了一个令人费解的错误。 我基本上实现了一个共享映射,只包含一个整数 这是我的服务代码 缓存是通过以下方式生成的: 当集群中至少有两台服务器时,computeIfAbsen会失败 这可以归结为: 最后是: 如果我把我非常好的时髦代码重写成丑陋的代码,它就会起作用。 我怎么能使用漂亮的电脑现在没有做事的方式? Eclipse 2018-12、WildFly 14、

  • 它说我需要白名单一个域,但我在控制台中找不到任何地方这样做,除了我创建的动态链接。我尝试运行下面的代码,但我得到 我不应该使用动态链接进行火警认证吗?如果是这样,我在控制台的什么地方白名单域,因为我找不到它。

  • 我正在尝试使用kryo序列化和反序列化到二进制。我想我已经完成了序列化,但似乎无法反序列化。下面是我正在处理的代码,但最终我想存储一个字节[],然后再次读取它。文档只显示了如何使用文件。

  • 问题内容: 使用,我可以将其发送到PHP页面。现在如何在PHP中反序列化它?它已在jQuery中序列化。 问题答案: 您无需从jquery 方法反序列化PHP中的任何内容。如果对数据进行序列化,则如果使用GET方法ajax请求,则应将其作为查询参数发送给PHP;如果使用POST ajax请求,则应将其作为vars发送。因此,在PHP中,您将访问类似或取决于请求类型的值。 该方法仅采用表单元素并将其

  • 我试图使用一个服务,它给我一个实体,它的字段是一个数组。 但是,当数组包含单个项时,将返回项本身,而不是返回一个元素的数组。 在这种情况下,Jackson无法转换为我的Java对象。 有一个简单的解决方案吗?

  • 问题内容: 我尝试过在Java和Android之间实现跨平台序列化。我使用了Serializable,并将我的代码在Android中与台式机Java放在同一软件包中。 来源:java-desktop序列化 资料来源:Android-反序列化 学生是一类,实现了Serializable。在桌面上,我将学生实例序列化为“ thestudent.dat”。我将此文件放在Android设备上的SD卡上,并