|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有了这样一个呼声:让java代替C语言成为基本语言。这些足以说明java简单易学的这个优点。其次,java的功能强大,前面我也提到了,EJB3.0的推出使java成为了大型项目的首选。
Java2EnterpriseEdition(J2EE)远程办法挪用(RemoteMethodInvocation,RMI)框架同意你创立通明的、散布式的服务和使用程序。基于RMI的使用程序由Java对象组成,这些对象互相挪用,同时疏忽对方的地位。换言之,一个Java对象可挪用另外一个假造机上的某个Java对象的办法,全部历程和挪用统一个假造机上的某个Java对象的办法无异。驻留在分歧假造机上的对象为了互相取得援用,可使用RMI的查找服务,大概将对象援用作为办法挪用的一个参数大概前往值来吸收。参数和前往值借助Java的对象序列化机制由RMI来举行封送。
远程对象和接口
Java供应了一个完整限制称号为java.rmi.Remote的接口。任何对象要想介入和另外一个Java对象的远程会话,就必需间接或直接地完成该接口。特别要注重的是,任何由java.rmi.Remote接口来标识的对象都表示着它的办法可从其他任何假造机举行挪用。完成了java.rmi.Remote接口的对象一般称为“远程对象”,必需接纳以下体例来声明它的办法:
每一个撑持远程挪用的办法都必需在其throws子句中声明java.rmi.RemoteException。
关于一个可远程挪用的办法,它的每一个非基础(nonprimitive)参数大概前往值都必需间接或直接地声明为完成了java.io.Serializable接口。
除完成java.rmi.Remote接口和准确声明任何远程办法以外,远程对象必需供应一个无参数的机关函数,它能激发一个java.rmi.RemoteException非常。这就包管了对象可基于一种序列化形态来远程机关。
远程对象必需导出,以吸收传进的远程办法挪用。为此,你一般必要扩大java.rmi.server.UnicastRemoteObject大概java.rmi.activation.Activatable。经由过程对个中任何一个类举行扩大,远程对象便可在创立时主动导出。
以下接口界说展现了java.rmi.Remote接口最典范的用法:
importjava.rmi.Remote;
importjava.rmi.RemoteException;
publicinterfaceTimeKeeperextendsRemote
{
publicStringcurrentDate()throwsRemoteException;
publicStringcurrentTime()throwsRemoteException;
}
因为String类声明为完成了java.io.Serializable接口,以是String是远程办法的无效前往范例。
以下代码展现了怎样完成TimeKeeper接口,以便界说一个无效的远程对象:
importjava.rmi.RemoteException;
importjava.util.Calendar;
importjava.util.GregorianCalendar;
publicclassTimeKeeperImplimplementsTimeKeeper
{
publicTimeKeeperImpl()
throwsRemoteException
{
}
publicStringcurrentDate()throwsRemoteException
{
Calendarcal=newGregorianCalendar();
StringretVal=(cal.get(Calendar.MONTH)+"/"+
cal.get(Calendar.DAY_OF_MONTH)+"/"+
cal.get(Calendar.YEAR));
returnretVal;
}
publicStringcurrentTime()throwsRemoteException
{
Calendarcal=newGregorianCalendar();
StringretVal=(cal.get(Calendar.HOUR_OF_DAY)+":"+
cal.get(Calendar.MINUTE)+":"+
cal.get(Calendar.SECOND));
returnretVal;
}
}
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。 |
|