请问,怎么写才能做到先提交事务,再发送消息(activeMQ)

现在想实现一个功能,后台新增商品的同时,把新增商品的信息同步至索引库。
但是如果把发送消息的代码加到新增商品的方法里,因为最后一句是resalut ok(),所以会导致还未提交事务,就先发送了消息,此时发送的消息是空。导致报空指针错误。我把新增方法和发消息的代码装在一个新的方法里。但并未解决问题。
图片说明

2个回答

把发消息的部分抽出成方法,然后在该方法中先调用新增保存方法,在获取消息的参数来发消息

whyyouhitme_
whyyouhitme_ 回复YU_Cheng_Long: 我按圖中那樣寫,不對啊。還是空指針錯誤。麻煩看下那段代碼哪裡有問題
接近 2 年之前 回复
YU_Cheng_Long
浮生-半日 回复whyyouhitme_: 都可以实现, 只要保证保存方法已经成功执行完成了, 在获取到发消息要用的id参数就可以
接近 2 年之前 回复
whyyouhitme_
whyyouhitme_ 如我图中那样写对吗
接近 2 年之前 回复
whyyouhitme_
whyyouhitme_ 然后把这个新方法注入controller层代替旧的新增方法吗?那此方法的返回值是?此方法内调用旧的新增方法的返回值又是?
接近 2 年之前 回复

代码不完整,看不出哪里错了,你要自己debug找到空指针对象,然后在想想为啥这个对象回空。

whyyouhitme_
whyyouhitme_ 为啥,我是知道的。但是不会写。原因就是我问题中说明的
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐