最近对公司实现分布服务,然后通过ActiveMQ发送消息,消息我是封装到一个实现了序列化的对象里面通过发送ObjectMessage来发送,在接收的时候发现虽然只发送了一个消息,但是在Listener的日志里面看到似乎消息被接收了N次,但是看发送端的Log,消息确实只发送了一次,而且另外一个代码分支发送同样的类的实例,却是正常的,后来看了一下,在出错的代码分支里面,类实例里面的一个变量没有设值,设置了值以后就好了。如下:
//出错的分支 ObjActiveMQ o1 = new ObjActiveM(); o1.n1="11111"; o1.n2="22222"; //这里没有设置n3 //正确的代码分支 ObjActiveMQ o2 = new ObjActiveM(); o1.n1="aaaaa"; o1.n2="bbbbb"; //这里设置了n3的值 01.n3="cccccc";