J2EE中用RMI和CORBA进行分布式Java编程

来源: 作者:佚名 2008-03-31 出处:pcdog.com

java  web服务器  安全  协议  注册表  
上一页 1 2 3 下一页 

下一步是实现接口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();

}

}

}



上一页 1 2 3 下一页 
上一篇:J2EE综合:Java学习:EJB的专用术语解释
下一篇:开发J2EE应用应注重测试工作