下一步是实现接口FileInterface。实现的范例见代码范例2。 请注意,除了实现FileInterface之外,还把FileImpl 类扩展为UnicastRemoteObject。这表示FileImpl类 将用于创建一个单独的、不可复制的远程对象,它使用RMI缺省的基于TCP的传送 通道进行通讯。
代码范例2: FileImpl.java
import java.io.*;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
public class FileImpl extends UnicastRemoteObject
implements FileInterface {
private String name;
public FileImpl(String s) throws RemoteException{
super();
name = s;
}
public byte[] downloadFile(String fileName){
try {
File file = new File(fileName);
byte buffer[] = new byte[(int)file.length()];
BufferedInputStream input = new
BufferedInputStream(new FileInputStream(fileName));
input.read(buffer,0,buffer.length);
input.close();
return(buffer);
} catch(Exception e){
System.out.println("FileImpl: "+e.getMessage());
e.printStackTrace();
return(null);
}
}
}
开发服务器
第三个步骤是开发服务器。服务器需要做三件事:
创建RMISecurityManager的一个实例并安装它
创建远程对象(在本例中是FileImpl)的一个实例
在RMI注册表中登记这个创建的对象。实现的范例见代码范例3。
代码范例 3: FileServer.java
import java.io.*;
import java.rmi.*;
public class FileServer {
public static void main(String argv[]) {
if(System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
FileInterface fi = new FileImpl("FileServer");
Naming.rebind("//127.0.0.1/FileServer", fi);
} catch(Exception e) {
System.out.println("FileServer: "+e.getMessage());
e.printStackTrace();
}
}
}
相关专题
- Java环境安装配置 (5726篇文章)
- Java编程开发手册 (8393篇文章)
- Java的类 (881篇文章)
- JAVA网络 (467篇文章)
- Java应用开发篇 (1099篇文章)
- 初学者如何开发一个高质量的J2EE系统 (29次浏览)
- 怎样部署基于WebSphere的J2EE应用 (28次浏览)
- J2EE综合:Java学习:EJB的专用术语解释 (20次浏览)
- 在Ubuntu 7.10 Linux下搭建J2EE开发环境 (14次浏览)
- 常见J2ME系统属性及其作用列表 (13次浏览)
- J2ME综合-J2ME应用程序内存优化三招 (12次浏览)
- 代码生成新工具:J2EE Spider (12次浏览)
- 详细讲解J2ME中用不到的Java基础知识 (11次浏览)
- J2EE综合--java语言不一定就跨平台 (11次浏览)
- 基于J2ME的SVGT移动应用(二) (10次浏览)



