gpt4 book ai didi

java - 交易成功后如何发送XMPP消息?

转载 作者:行者123 更新时间:2023-11-30 09:46:05 26 4
gpt4 key购买 nike

在我的项目中,我将所有服务设计为无状态 session bean。在工作流程中,会创建新数据,并且应将此报告给客户。我只想在事务成功提交时发送此消息。

我注册了一个 ServletContextListener,用于发送我的 xmpp 数据包(smack 库)。当我收到一个数据包时,我找到我的调度有状态 session bean 并开始处理请求。

public void processPacket(Packet packet) {
try{
if(packet instanceof RawRequest){
DispatchIQService service = Core.lookup(DispatchIQService.class);
service.process(connection, (RawRequest)packet);
// sending of the messages should happen here, because transaction completed successful.
}else{
log.debug("Packet ignored: " + packet.toXML());
}
}catch(Exception e){
log.error(e, e);
}
}
  1. 如何在跨多个 bean 的工作流中收集生成的消息?我将从调度 bean 返回此列表,然后发送消息。我的简单解决方案是通过我添加消息的列表进行路由,但有没有更优雅的方法?

  2. 我有一个 XMPP 资源(花名册 http://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smack/Roster.html),我必须从所有 bean 访问它。我怎样才能做到这一点?将其存储到静态变量中并同步对其的访问听起来不太好。

最佳答案

Markus,我不是 J2EE 专家,但出于您的目的,我建议您看一下 JMS .这将帮助您实现基于消息的方法。至于我,我曾经使用 RabbitMQ 系统。这是很棒的体验,但需要额外的软件才能运行该系统。

关于java - 交易成功后如何发送XMPP消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7316693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com