初识:rmi __完整的example

来源:互联网 发布:诺基亚e7软件下载 编辑:程序博客网 时间:2024/06/10 17:30

interface:

package rmi;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface PerfectTimeI extends Remote {

 public abstract String getHelloWorld(String name) throws RemoteException;
}

impl:

 package rmi.impl;

import java.rmi.RemoteException;

import rmi.PerfectTimeI;

public class PerfectTimeImpl implements PerfectTimeI {
 
 public String getHelloWorld(String name) throws RemoteException
 {
  return name+", hello world!";
 }
}

server:

 package server;

import java.rmi.RMISecurityManager;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;

import rmi.PerfectTimeI;
import rmi.impl.PerfectTimeImpl;

public class Start_rmi {

 public static void main(String args[]) {
  System.out.println("////////////////");
  System.setSecurityManager(new RMISecurityManager());
  try {
   PerfectTimeImpl pt = new PerfectTimeImpl();
   PerfectTimeI per = (PerfectTimeI) UnicastRemoteObject.exportObject(
     pt, 0);
   Registry registry = LocateRegistry.getRegistry();
   registry.bind("PerfectTimeI_lookup", per);
   System.out.println("-----Ready to do time ");
  } catch (Exception e) {
   System.out.println(e.getLocalizedMessage());
   e.printStackTrace();
  }
 }
}

安全的文件名:

rmi.policy

grant {
permission java.security.AllPermission "", "";
};

在VM argvments:加client,和server两个端都要加上

-Djava.security.policy=file:/D:/guanliangqi/workspace/demo/bin/rmi.policy -Xms128m -Xmx256m

注意在CLASSPAHT中加入本工程的路径:D:/zhangxiao/workspace/demo/bin

1.先起动文件 start.bat        内容:

start rmiregistry

2.running server端

3.running client端

原创粉丝点击