2011-06-17 84 views
3

如果我们分析EJB的话,在更高级别上说statelessEJB Bean,它似乎是由RMI API创建的ejb框架。 我之所以这样说的原因: -EJB vs Rmi比较

IN RMI也有远程接口。在命名查找中,我们得到了一个存根,它调用了skelton,它在内部调用远程对象。

在EJB我们有home接口和远程接口,其实现由EJB容器(它看起来像什么,但存根) 上调用创建本地接口上提供它给人的远程对象上按我会给呼叫内部调用会话 对象的skelton。

请让我知道,如果上述比较有意义吗?

回答

3

是的,EJB规范一直要求RMI兼容性(并且一些应用程序服务器是建立在CORBA之上的)。在EJB 3.0之前,远程EJB需要具有扩展EJBObject(因此java.rmi.Remote)的组件接口,并且需要所有方法来抛出java.rmi.RemoteException。实际上,早期规范版本中不存在本地接口。 EJB规范试图通过允许容器管理远程对象的生命周期和可伸缩性来简化RMI。 (当然,它也有其他非远程目标。)

+0

对此有另外一个问题?假设我们在远程对象上调用了一些方法doDeposit(AccountInfo accInfo)。存根是否使用objectOutPutStream将accInfo写入某个文件,然后通过网络传输。这是对的吗?文件是通过网络传输任何Java对象的唯一方法吗? – 2011-06-17 18:28:45