Java Hazelcast可序列化映射类找不到异常

Java Hazelcast可序列化映射类找不到异常,java,map,classnotfoundexception,serializable,hazelcast,Java,Map,Classnotfoundexception,Serializable,Hazelcast,我试图在一个简单的web应用程序中实现Hazelcast 我试图将一个自定义对象存储到我的Hazelcast映射中,并在我的Bid对象类中通过必要的导入实现了Serializable import java.io.Serializable; 下面是类对象的一个片段 public class Bid implements Serializable{ private String bidId; private String stock; private int price; priv

我试图在一个简单的web应用程序中实现Hazelcast

我试图将一个自定义对象存储到我的Hazelcast映射中,并在我的Bid对象类中通过必要的导入实现了Serializable

import java.io.Serializable;
下面是类对象的一个片段

public class Bid implements Serializable{

private String bidId;      
private String stock;
private int price;
private String userId;
private Date date;
以下是与教程一样的语法,用于将Bid对象存储到地图中,其中newBid是一个Bid对象

Config cfg = new Config();
    HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);    

Map<String, Bid> mapBids = instance.getMap("bids");
        mapBids.put(newBid.getUserId(), newBid);
对象类与我的web应用位于同一文件夹中,具有必要的导入语法,但它没有读取它。我还将类路径添加到我的Hazelcast jar文件中


在我的Bid类对象中,是否有任何变量必须是暂时的,以便序列化工作?还是我遗漏了什么?

如果您在本地运行代码,问题是有些Hazelcast节点没有相同的类。在控制台中检查并确认以下各项:

成员[1]{
成员[10.17.54.16]:5701此
}


如果有更多的hazelcast实例正在运行,请关闭它们,然后运行应用程序。

我在尝试将“MyClass”的实例放入相关iMap时,使用远程双节点群集遇到了同样的问题。我当时在想我需要分发包含“MyClass”的jar,但意识到问题在于hazelcast.xml文件中的定义指定了对象的内存格式

<in-memory-format>OBJECT</in-memory-format>
对象
我把这个值改成二进制,一切都开始工作了

<in-memory-format>BINARY</in-memory-format>
二进制
注意。我现在在集群中有许多不同的映射,其中一些被定义为OBJECT,另一些被定义为BINARY


我希望这能帮助别人

公共类竞价应该在服务器端以及客户端定义

您是否在集群中的所有成员之间共享该类,以及是否使用客户端;在客户端和服务器之间?因为我很确定这个班没有找到。谢谢你的回复!我使用run client windows批处理文件在计算机上本地运行了Hazelcast节点,并在Tomcat服务器托管的Web应用程序中实例化了Hazelcast实例。我是否也必须通过我的web应用程序对Hazelcast节点进行编程编码才能启动?抱歉,我似乎找不到任何关于Hazelcast实现的概念性知识。请不要使用批处理文件。它们只是用来玩的。我通常在我的应用程序中嵌入hazelcast节点,例如HazelcastInstance hz=hazelcast.newHazelcastInstance(),但问题的原因是类文件在集群中的所有成员上都不可用。我如何跨hazelcast节点传播类文件?我正在本地运行节点,因此是否缺少帮助Hazelcast指向该特定类的设置?我们不提供分布式类加载器。因此,您需要将应用程序的JAR(也就是包含aa.Bid的JAR)包含到所有运行Hazelcast的JVM中。
<in-memory-format>BINARY</in-memory-format>