- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个在 VM 上运行的 Hazelcast 服务器实例。数据应该存储在 MAP<Integer, User>
,其中User类如下:
public class User implements com.hazelcast.nio.serialization.DataSerializable{
private Integer id;
private String name;
private String nick;
private Boolean sex;
//getters & setters
@Override
public void writeData(ObjectDataOutput out) throws IOException{
out.writeInt(id.intValue());
out.writeUTF(name);
out.writeUTF(nick);
out.writeBoolean(sex);
}
@Override
public void readData(ObjectDataInput in) throws IOException{
id = (Integer) in.readInt();
name = in.readUTF();
nick = in.readUTF();
sex = in.readBoolean();
}
我使用客户端实例连接到此服务器并尝试将对象添加到该 map :
System.out.println("Map Size: " + map.size());
map.put(1, user);
System.out.println("Map Size: " + map.size());
System.out.println(map.containsKey(1) ? "yes":"no");
System.out.println(map.containsValue(user) ? "yes":"no");
User queried = (User) map.get(1); /*this is line 64*/
System.out.println(queried.toString());
上面的代码给了我以下控制台输出:
Map Size: 0
Map Size: 1
yes
yes
还有以下 User queried = (User) map.get(1);
行的异常:
Problem while reading DataSerializable, namespace: 0, id: 0, class: com.blabla.User, exception: com.blabla.User.<init>()
这里有什么问题?为什么我无法读取刚刚放入 Map 的数据?
以下是异常详情:
com.hazelcast.nio.serialization.DataSerializer.read(DataSerializer.java:114)
com.hazelcast.nio.serialization.DataSerializer.read(DataSerializer.java:36)
com.hazelcast.nio.serialization.StreamSerializerAdapter.read(StreamSerializerAdapter.java:59)
com.hazelcast.nio.serialization.SerializationServiceImpl.toObject(SerializationServiceImpl.java:218)
com.hazelcast.client.spi.impl.ClientClusterServiceImpl._sendAndReceive(ClientClusterServiceImpl.java:172)
com.hazelcast.client.spi.impl.ClientClusterServiceImpl.sendAndReceive(ClientClusterServiceImpl.java:137)
com.hazelcast.client.spi.impl.ClientInvocationServiceImpl.invokeOnTarget(ClientInvocationServiceImpl.java:42)
com.hazelcast.client.spi.impl.ClientInvocationServiceImpl.invokeOnKeyOwner(ClientInvocationServiceImpl.java:53)
com.hazelcast.client.proxy.ClientMapProxy.invoke(ClientMapProxy.java:492)
com.hazelcast.client.proxy.ClientMapProxy.get(ClientMapProxy.java:83)
com.blabla.HazelcastFactory.insertUser(HazelcastFactory.java:64)
java.lang.NoSuchMethodException: com.dileky.User.<init>()
java.lang.Class.getConstructor0(Class.java:2800)
java.lang.Class.getDeclaredConstructor(Class.java:2043)
com.hazelcast.nio.ClassLoaderUtil.newInstance(ClassLoaderUtil.java:54)
com.hazelcast.nio.ClassLoaderUtil.newInstance(ClassLoaderUtil.java:50)
com.hazelcast.nio.serialization.DataSerializer.read(DataSerializer.java:103)
com.hazelcast.nio.serialization.DataSerializer.read(DataSerializer.java:36)
com.hazelcast.nio.serialization.StreamSerializerAdapter.read(StreamSerializerAdapter.java:59)
com.hazelcast.nio.serialization.SerializationServiceImpl.toObject(SerializationServiceImpl.java:218)
com.hazelcast.client.spi.impl.ClientClusterServiceImpl._sendAndReceive(ClientClusterServiceImpl.java:172)
com.hazelcast.client.spi.impl.ClientClusterServiceImpl.sendAndReceive(ClientClusterServiceImpl.java:137)
com.hazelcast.client.spi.impl.ClientInvocationServiceImpl.invokeOnTarget(ClientInvocationServiceImpl.java:42)
com.hazelcast.client.spi.impl.ClientInvocationServiceImpl.invokeOnKeyOwner(ClientInvocationServiceImpl.java:53)
com.hazelcast.client.proxy.ClientMapProxy.invoke(ClientMapProxy.java:492)
com.hazelcast.client.proxy.ClientMapProxy.get(ClientMapProxy.java:83)
com.blabla.HazelcastFactory.insertUser(HazelcastFactory.java:64)
最佳答案
从堆栈跟踪看来,您的类没有默认构造函数(没有参数的构造函数)。如果您定义了带有参数集的构造函数,则编译器不会自动创建默认构造函数,您必须显式定义它。或者,您的类或构造函数可能不是公共(public)范围的,而是包私有(private)或私有(private)的。
public class User {
// Fields
public User() {
}
// Getters / Setters
}
关于map - Hazelcast IMap.get() 抛出 HazelcastSerializationException,但 IMap.put() 工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23206326/
内存格式 - “BINARY”适用于在分布式 map 中存储对象。 hz:map name="mymap" max-idle-seconds="0" in-memory-format="BINAR
我正在运行一个 OSGI 插件项目(没有 N 个包),我在其中集成了榛子, 一世。当我尝试将数据添加为字符串和测试 bean 的映射时,它被添加到淡褐色类型转换映射中,但是! ii.当我尝试获取 ma
我的应用程序基于 spring boot + hazelcast。 我正在尝试将简单实体保存到 hazelcast 中: public class ExampleMeeting implements
我想缓存基于接口(interface)的投影的结果但我收到了这个错误 Caused by: com.hazelcast.nio.serialization.HazelcastSerialization
我正在使用 felix maven 插件(N 包)运行一个 OSGI 插件项目,我已将 hazelcast 集成到其中。创建 hazelcast 实例的“ConfigurationService”类被
我有一个在 VM 上运行的 Hazelcast 服务器实例。数据应该存储在 MAP ,其中User类如下: public class User implements com.hazelcast.nio
我正在尝试在 grails 应用程序中使用 hazelcast 进行 session 复制,如 Hazelcast docs 中给出的。 . Grails 版本:1.2.1 Hazelcast:2.5
我通过扩展 AbstractEntryProcessor 创建了用于更新 map 条目的自定义条目处理器。当我的应用程序在两个实例上的集群中运行并且执行入口处理器时,我收到以下异常: com.haze
我是一名优秀的程序员,十分优秀!