dynamicremoteobject.java

来自「最新的关于精通rmi这本书的源码」· Java 代码 · 共 54 行

JAVA
54
字号
/*
 * Copyright 1999 by dreamBean Software,
 * All rights reserved.
 */
package smartworld.server;

import java.lang.reflect.Proxy;
import java.net.URL;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

/**
 *    This is a replacement for UnicastRemoteObject that you can use to export objects with
 *    dynamically generated stubs.
 *
 *   @author Rickard 謆erg (rickard@dreambean.com)
 */
public class DynamicRemoteObject
{
   // Static --------------------------------------------------------
   static DynamicClassLoader dcl;
   
   static
   {
      try
      {
         dcl = new DynamicClassLoader(new URL[] 
         {
            new URL(System.getProperty("java.rmi.server.codebase"))
         });
      } catch (Exception e)
      {
         e.printStackTrace();
      }
   }
   
   public synchronized static Remote exportObject(Remote obj)
      throws RemoteException
   {
      Class remote = obj.getClass().getInterfaces()[0];
      Remote proxy = (Remote) Proxy.newProxyInstance(dcl,
                                       new Class[] { remote },
                                       new RemoteProxy(obj));
      UnicastRemoteObject.exportObject(proxy);
      return proxy;
   }
   
   // Constructors --------------------------------------------------
   private DynamicRemoteObject()
   {
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?