这可能听起来类似于this,但事实并非如此。当您可以实现Web服务(SOA/REST)时,使用RMI实现EJB仍然有用吗?
我有点理解EJB和RMI,而且我一直在SOA下使用Web服务。我想知道为什么使用EJB公开RMI下的远程接口而不是发布Web服务(SOA/REST,但主要是SOA)是有用的。我并不是问哪一个更好,只是我想知道为什么我更喜欢通过Web服务实现具有远程接口的EJB。
我回顾了很多网页,但都显得过时。到目前为止,我所拥有的是在与Java遗留系统集成时,暴露远程接口的EJB只比WS更好。如果我想管理事务,我可以用本地接口实现EJB。另外我不认为选择EJB over RMI比Web Service接口更有效率。
我对不对?有什么我失踪?
真的在此先感谢。
谢谢,但之前将其标记为已回答,第一个不会是一个有效的原因,因为我可以使用暴露本地接口的EJB来实现Web服务吗?所以交易是一样的。 – 2012-04-17 20:16:59
的确,当您需要在一个事务中执行多个分离的调用时,问题就开始了。 Web服务通常是无状态的,并且必须“手动”管理事务,这可能很麻烦。有状态的EJB将免费提供。 – 2012-04-17 20:22:23
那么,即使使用之前给出的最后一个原因,您也可以拥有有状态的Web服务。所以我会考虑第二个和第三个原因,效率(有点我猜)和遗产。谢谢! – 2012-04-17 20:27:11