您的位置:jsp学习站首页 >> JAVA类 >> JAVA基础 >> 漫谈EJB (2)

漫谈EJB (2) (5)

[ 来源:互网络 | 更新日期:2007-09-16 12:11:23 | 浏览次数:3146]
简介:1中实现的,它大大增强了Java开发分布式应用的能力。Java作为一种风靡一时的网络开发语言,其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。    remote method invocation决不简单,需要考虑几个问题:    marshalling和unmarshalling
emoteException 类是一个已检验的异常(必须由远程方法的调用程序处理并经编译器检验的异常),而不是 RuntimeException。 

RemoteObject 类及其子类 

    RMI 服务器函数由 java.rmi.server.RemoteObject 及其子类java.rmi.server.RemoteServer、java.rmi.server.UnicastRemoteObject和 java.rmi.activation.Activatable 提供。 

    java.rmi.server.RemoteObject 为对远程对象敏感的 java.lang.Object方法、hashCode、 equals 和 toString 提供实现。 

    创建远程对象并将其导出(使它们可为远程客户机利用)所需的方法由类UnicastRemoteObject 和 Activatable 提供。子类可以识别远程引用的语义,例如服务器是简单的远程对象还是可激活的远程对象(调用时将执行的远程对象)。java.rmi.server.UnicastRemoteObject 类定义了单体(单路传送)远程对
象,其引用只有在服务器进程活着时才有效。类 java.rmi.activation.Activatable 是抽象类,它定义的 activatable远程对象在其远程方法被调用时开始执行并在必要时自己关闭。 

实现远程接口 

    实现远程接口的类的一般规则如下: 

    该类通常扩展 java.rmi.server.UnicastRemoteObject,因而将继承类java.rmi.server.RemoteObject 和java.rmi.server.RemoteServer 提供的远程行为。
    该类能实现任意多的远程接口。 
    该类能扩展其它远程实现类。 
    该类能定义远程接口中不出现的方法,但这些方法只能在本地使用而不能在远程使用。 

    例如,下面的类 BankAcctImpl 实现 BankAccount 远程接口并扩展java.rmi.server.UnicastRemoteObject 类: 

package mypackage; 

import java.rmi.RemoteException; 
import java.rmi.server.UnicastRemoteObject; 

public class BankAccountImpl extends UnicastRemoteObject implements 
BankAccount 


private float balance = 0.0; 

public BankAccountImpl(float initialBalance) 
throws RemoteException 

balance = initialBalance; 


public void deposit(float amount) throws RemoteException 

... 


public void withdraw(float amount) throws OverdrawnException, 
RemoteException 

... 


public float getBalance() throws RemoteException 

... 




    注意:必要时,实现远程接口的类能扩展除java.rmi.server.UnicastRemoteObject 类以外的其它一些类。但实现类此时必须承担起一定的责任,即导出对象(由 UnicastRemoteObject 构造函数负责)和实现从 java.lang.Object 类继承的 hashCode、 equals 
[1] [2] [3] [4] [5] [6] [7]
Tags:关键字:漫谈EJB (2)
责任编辑:glen