我有一个相当简单的问题要问,虽然我还没找到答案。我有两个使用Spring集成的Apache CXF契约优先服务实现。我将它们称为 Service Apache One ,以及 Service Apache Two 。
我的业务逻辑需要创建一个与这两个服务器交互的客户端应用程序( Client One )(该应用程序也应该使用Spring框架开发)。两种服务都应该支持交易。 Service Apache One 有一个名为 OperationOne 的操作, Service Apache Two 有一个名为 OperationTwo 的操作。
客户端执行名为 OperationClient 的操作,该操作编排应调用 OperationOne 的业务逻辑,然后调用 OperationTwo 。 OperationClient 应该是原子的,因此,如果对 OperationTwo 的调用失败,那么 OperationOne 应该回滚。我认为这是通过使用WS-AtomicTransaction实现的。
问题就出现了。我该如何实现这个电话?我应该在 Service Apache One 和 Service Apache Two 上放置什么?我应该在客户端上放置什么,以便交易包括两个Web服务调用,如果第二次调用失败,它还会回滚第一个调用吗?