0

我们有一个使用EJB 3无状态 bean 的系统,它也作为 Web 服务公开。

来自其他团队的集成请求希望我们的系统在调用后(通过 Web 服务或其他方式)向其他系统发出通知。由于这与我们的系统并不完全相关,我更愿意将此功能与我们自己的系统松散耦合,而不是将这些功能硬编码到我们的系统代码中。

EJB 或 Web 服务上是否有任何功能可以实现我想要的?我们需要一个方法级别的调用侦听器,以便在调用 EJB 方法/Web 服务时,它可以触发回调/消息,以便我们可以根据它执行某些操作。我希望它是用于设置 JMS 或其他东西的某种注释/配置。

我们使用 JBoss 作为应用服务器。如果有任何 JBoss 特定的解决方案,也欢迎。

4

1 回答 1

2

我建议两种选择:

  • 使用 JMS。当您提到松散耦合时,我首先想到的是 JMS - 您可以在方法调用后将消息放在某个队列/主题上,并让侦听器执行进一步的操作。JMS 消息可以携带各种对象——唯一的要求是类实现 Serializable ( ObjectMessage#setObject );另一个优点是您可以(取消)独立部署您的无状态 bean 和其他系统。它们可以在不同的 JVM 上。

  • 使用拦截器。从技术上讲,它们将在您的方法运行之前被调用,但当然总有一些很好的解决方法:-) 这是有关拦截器的官方文档,但是由于您提到您正在使用 JBoss,因此也可以找到一些有趣的材料在JBoss 页面上。

于 2012-12-04T08:28:54.950 回答