实体类转换异常
failed to resolve class name.
解决方案
- 1.依赖系统1的jar包,直接使用类A来接收
- 2.不依赖系统1的jar包,自己建一个和A一模一样的类,连名称,包路径都一样
- 3.负责监听 queue 的类实现 MessageListener 接口,直接接收 Message 类,再自己转
显然都不够好也不是自己想要的
在 JsonMessageConverter 的 fromMessage 方法中有这么一段:
f (getClassMapper() == null) {
JavaType targetJavaType = getJavaTypeMapper()
.toJavaType(message.getMessageProperties());
content = convertBytesToObject(message.getBody(), encoding, targetJavaType);
} else {
Class<?> targetClass = getClassMapper().toClass(
message.getMessageProperties());
content = convertBytesToObject(message.getBody(), encoding, targetClass);
}
就是说默认情况下,JsonMessageConverter 使用的 ClassMapper 是 DefaultJackson2JavaTypeMapper
,在转换时通过 Mes