2, 編寫服務(wù)器對象:
Java中具有一個(gè)可以直接使用的服務(wù)器類--UniCastRemoteObject。它存在于Java.rmi.server包中。我們可以直接擴(kuò)展這個(gè)類,使它實(shí)現(xiàn)前述的接口。這樣就可以使服務(wù)器滿足我們的需要。
import java.rmi.server.*;
import java.rmi.*;
public class ProductImpl extends UnicastRemoteObject implements Product
{
public ProductImpl(String name) throws RemoteException
{
Desc = name;
}
public String getDescription() throws RemoteException
{
return "This is "+Desc+" product";
}
private String Desc;
}
可以看到,rmi服務(wù)器的實(shí)現(xiàn)和其他的方法代碼沒有什么不同。
3, 編寫創(chuàng)建服務(wù)器對象的服務(wù)器程序:
import java.rmi.*;
public class ProductServer
{
public static void main(String[] args)
{
try
{
System.out.println("Constructin Server implementations ....");
ProductImpl p1 = new ProductImpl("toaster");
ProductImpl p2 = new ProductImpl("microwave");
System.out.println("Binding server implementations to registry");
Naming.rebind("toaster",p1);
Naming.rebind("microwave",p2);
System.out.println("waiting for clients...");
}catch(Exception e)
{
System.out.println("Error "+e);
}
}
}
通過代碼可以看到,這個(gè)服務(wù)器首先創(chuàng)建了兩個(gè)服務(wù)器對象。然后使用Naming.rebind()方法,將這個(gè)對象和一個(gè)名稱聯(lián)系(綁定)在一起。這個(gè)名稱就是客戶機(jī)查找服務(wù)器對象所使用的名稱。Naming是java.rmi包中的類。這個(gè)類的作用是建立一套查找對象的命名機(jī)制。通過它就可以將綁定在特定名稱上的對象找到。進(jìn)入討論組討論。