我遇到了一个需要通过SOAP消息向远程系统发送异步通知的系统(基于Java,OSGI,Equinox,Blueprint)。系统必须确保通知到达远程系统(即它通过确认消息响应,WS-ReliableMessaging不可用)。
现在我看到两个选项:
使用OSGI的EventAdmin机制来触发通知,实现我自己的处理程序,该处理程序将通知保留在队列中。石英作业将轮询队列并尝试发送Soap消息。如果远程系统成功响应,则只会从队列中删除该消息。
使用像ActiveMQ这样的消息传递中间件(例如,作为Apache Servicemix的一部分)来使用JMS并使整个任务变得更加容易。
你有什么建议?
答案 0 :(得分:0)
采用JMS,如果你选择1,你将最终实现一些已经由JMS系统提供的东西。 OSGi事件很不错,但在关闭容器后它们就消失了。所以这至少是你必须重新实现像ActiveMQ这样的JMS消息系统已经提供的缺点之一。