应用程序设计的最佳实践
以下部分讨论使用 RMI 和 IIOP 上的 RMI 编程时建议使用的设计模式。
使用 java.rmi
BEA 建议 RMI 用户使用 java.rmi
。尽管 WebLogic API 包含 weblogic.rmi
API,但是已不赞成使用,仅将其作为兼容性 API 提供。为实现兼容性而提供的其他 WebLogic API 还有:
使用 PortableRemoteObject
为保持代码的可移植性,在转换 Home 接口时应始终使用 PortableRemoteObject。例如:
Propshome home = (PropsHome)
PortableRemoteObject.narrow(
ctx.lookup( "Props" ),
PropsHome.class );
为了保证使用 WebLogic 类,请实现 weblogic.rmi.extensions.PortableRemoteObject
。
使用 WebLogic 工作区域
Work Context 允许 J2EE 开发人员将属性作为应用程序上下文定义,它隐式跟踪远程请求并使下游组件能够在发出调用的客户端的上下文中工作。Work Context 使开发人员无需将属性包含在远程调用中即可传递它们。Work Context 随每个远程调用而传播,以便所调用的组件能够添加或修改 Work Context 中定义的属性;类似地,发出调用的组件也可以访问 Work Context,以便获取新的或更新的属性。
Work Context 简化了要求将信息传递给远程组件的实现和维护功能的处理过程,例如,诊断监视、应用程序事务以及应用程序负载平衡。Work Context 还是为第三方组件提供信息的一种有用的机制。
Work Conext 可将用户定义的属性传播到 WebLogic Server 支持的所有请求范围,Work Context 可提供给请求范围中存在的所有对象,包括 RMI 调用。有关详细信息,请参阅使用 WebLogic Server 开发应用程序。
使用 RMI 超时的准则
此功能为需要异步调用行为但尚未实现此行为的旧式系统提供了一个解决办法。BEA 建议旧式系统在可能的情况下实现更适合的技术,例如: