当前位置: 代码迷 >> 综合 >> springBoot使用activeMQ发送消息,错误This class is not trusted to be serialized as ObjectMessage payload.
  详细解决方案

springBoot使用activeMQ发送消息,错误This class is not trusted to be serialized as ObjectMessage payload.

热度:55   发布时间:2023-12-17 20:49:54.0

原因是因为他不支持 对象作为消息进行发送。但是他支持string,byte,序列化,数字类型。

所以将对象转换为byte数组,在转换为对象解析即可

附上相关转换代码。

转换类的名字我叫做DataProcessUtils

/**
* 将对象转换为byte类型,用于 activeMq的消息传入,activeMQ不支持对象传输*
* */
public static byte[] toByteArray(Object obj) {byte[] bytes = null;ByteArrayOutputStream bos = new ByteArrayOutputStream();try {ObjectOutputStream oos = new ObjectOutputStream(bos);oos.writeObject(obj);oos.flush();bytes = bos.toByteArray ();oos.close();bos.close();} catch (IOException ex) {ex.printStackTrace();}return bytes;
}/*** 将对象转换为OBJ类型,用于 activeMq的消息传入后解析** */public static Object ByteToObject(byte[] bytes) {Object obj = null;try {// bytearray to objectByteArrayInputStream bi = new ByteArrayInputStream(bytes);ObjectInputStream oi = new ObjectInputStream(bi);obj = oi.readObject();bi.close();oi.close();} catch (Exception e) {System.out.println("translation" + e.getMessage());e.printStackTrace();}return obj;
}

发送消息的接口部分修改如下:

接收消息的部分修改如下:

 

 

  相关解决方案