Infinispan 服务器缓存更改编码 'application/x-jboss-marshalling' 到 'application/x-protostream'
Infinispan server cache change encoding 'application/x-jboss-marshalling' to 'application/x-protostream'
我目前在 JBoss 7.4 standalone.xml 中配置我的缓存容器,在本地主机上配置 ISPN 远程服务器 运行。一切都很好,直到它抛出错误:
ISPN000492:无法在 'application/x-jboss-marshalling' 到 'application/x-protostream'
之间找到转码器
standalone.xml:
<remote-cache-container name="remoteContainer" default-remote-cluster="data-grid-cluster">
<property name="infinispan.client.hotrod.sasl_mechanism">SCRAM-SHA-512</property>
<property name="infinispan.client.hotrod.auth_realm">default</property>
<property name="infinispan.client.hotrod.auth_username">admin</property>
<property name="infinispan.client.hotrod.auth_password">12345</property>
<property name="infinispan.client.hotrod.client_intelligence">BASIC</property>
<remote-clusters>
<remote-cluster name="data-grid-cluster" socket-bindings="ispn1 ispn2"/>
</remote-clusters>
</remote-cache-container>
ISPN 缓存配置:
{
“分布式缓存”:{
“模式”:“同步”,
“业主”:2,
“编码”:{
“钥匙”: {
“媒体类型”:“application/x-protostream”
},
“价值”: {
“媒体类型”:“application/x-protostream”
}
},
“到期”:{
“寿命”:5000,
“最大空闲”:1000
},
“统计”:真实
}
}
注意:我不想更改缓存编码,因为 infinispan 网络控制台停止工作
错误是说客户端缓存的媒体类型为 application/x-jboss-marshalling
,而您需要 application/x-protostream
。
查看 WildFly 23.x 代码,如果应用程序在其类路径中有 SerializationContextInitializer
实现,它将使用 ProtoStreamMarshaller
(和媒体类型 application/x-protostream
)。
即使你只在缓存中存储字符串和基元,你仍然必须编写一个接口并用@AutoProtoSchemaBuilder
注释它以便RemoteCacheContainerConfigurationServiceConfigurator
选择ProtoStreamMarshaller
。
在 WildFly 24.x 中,自动检测机制发生变化,如果模块属性包含 org.wildfly.clustering.web.hotrod
,则会选择 ProtoStreamMarshaller
,因此 <remote-cache-container modules="org.wildfly.clustering.web.hotrod">
也可能适用于 23.x.
在 Wildfly 24.x 中,您始终可以设置 <remote-cache-container marshaller="PROTOSTREAM">
以手动选择 ProtoStreamMarshaller
。
我目前在 JBoss 7.4 standalone.xml 中配置我的缓存容器,在本地主机上配置 ISPN 远程服务器 运行。一切都很好,直到它抛出错误:
ISPN000492:无法在 'application/x-jboss-marshalling' 到 'application/x-protostream'
之间找到转码器standalone.xml:
<remote-cache-container name="remoteContainer" default-remote-cluster="data-grid-cluster">
<property name="infinispan.client.hotrod.sasl_mechanism">SCRAM-SHA-512</property>
<property name="infinispan.client.hotrod.auth_realm">default</property>
<property name="infinispan.client.hotrod.auth_username">admin</property>
<property name="infinispan.client.hotrod.auth_password">12345</property>
<property name="infinispan.client.hotrod.client_intelligence">BASIC</property>
<remote-clusters>
<remote-cluster name="data-grid-cluster" socket-bindings="ispn1 ispn2"/>
</remote-clusters>
</remote-cache-container>
ISPN 缓存配置:
{ “分布式缓存”:{ “模式”:“同步”, “业主”:2, “编码”:{ “钥匙”: { “媒体类型”:“application/x-protostream” }, “价值”: { “媒体类型”:“application/x-protostream” } }, “到期”:{ “寿命”:5000, “最大空闲”:1000 }, “统计”:真实 } }
注意:我不想更改缓存编码,因为 infinispan 网络控制台停止工作
错误是说客户端缓存的媒体类型为 application/x-jboss-marshalling
,而您需要 application/x-protostream
。
查看 WildFly 23.x 代码,如果应用程序在其类路径中有 SerializationContextInitializer
实现,它将使用 ProtoStreamMarshaller
(和媒体类型 application/x-protostream
)。
即使你只在缓存中存储字符串和基元,你仍然必须编写一个接口并用@AutoProtoSchemaBuilder
注释它以便RemoteCacheContainerConfigurationServiceConfigurator
选择ProtoStreamMarshaller
。
在 WildFly 24.x 中,自动检测机制发生变化,如果模块属性包含 org.wildfly.clustering.web.hotrod
,则会选择 ProtoStreamMarshaller
,因此 <remote-cache-container modules="org.wildfly.clustering.web.hotrod">
也可能适用于 23.x.
在 Wildfly 24.x 中,您始终可以设置 <remote-cache-container marshaller="PROTOSTREAM">
以手动选择 ProtoStreamMarshaller
。