org.objectweb.proactive.core.rmi
Class ClassFileServer

java.lang.Object
  |
  +--org.objectweb.proactive.core.rmi.ClassServer
        |
        +--org.objectweb.proactive.core.rmi.ClassFileServer
All Implemented Interfaces:
java.lang.Runnable

public class ClassFileServer
extends ClassServer

The ClassFileServer implements a ClassServer that reads class files from the file system. See the doc for the "Main" method for how to run this server.


Field Summary
 
Fields inherited from class org.objectweb.proactive.core.rmi.ClassServer
DEFAULT_SERVER_BASE_PORT, DEFAULT_SERVER_PORT_INCREMENT, hostname, logger, MAX_RETRY, port
 
Constructor Summary
ClassFileServer()
          Constructs a ClassFileServer.
ClassFileServer(int port)
          Constructs a ClassFileServer.
ClassFileServer(int port, java.lang.String paths)
          Constructs a ClassFileServer.
ClassFileServer(java.lang.String paths)
          Constructs a ClassFileServer.
 
Method Summary
protected  byte[] getBytes(java.lang.String path)
          Returns an array of bytes containing the bytecodes for the class represented by the argument path.
static boolean isPortAlreadyBound(int port)
           
static void main(java.lang.String[] args)
          Main method to create the class server that reads class files.
 
Methods inherited from class org.objectweb.proactive.core.rmi.ClassServer
getHostname, getServerSocketPort, run
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClassFileServer

public ClassFileServer()
                throws java.io.IOException
Constructs a ClassFileServer.


ClassFileServer

public ClassFileServer(int port)
                throws java.io.IOException
Constructs a ClassFileServer.


ClassFileServer

public ClassFileServer(java.lang.String paths)
                throws java.io.IOException
Constructs a ClassFileServer.


ClassFileServer

public ClassFileServer(int port,
                       java.lang.String paths)
                throws java.io.IOException
Constructs a ClassFileServer.

Parameters:
port - the port to bound the server to
Method Detail

isPortAlreadyBound

public static boolean isPortAlreadyBound(int port)

main

public static void main(java.lang.String[] args)
Main method to create the class server that reads class files. This takes two optional command line arguments, the port on which the server accepts requests and the root of the classpath. To start up the server:

java ClassFileServer [<classpath>] [<port>]

The codebase of an RMI server using this webserver would simply contain a URL with the host and port of the web server (if the webserver's classpath is the same as the RMI server's classpath):

java -Djava.rmi.server.codebase=http://zaphod:2001/ RMIServer

You can create your own class server inside your RMI server application instead of running one separately. In your server main simply create a ClassFileServer:

new ClassFileServer(port, classpath);


getBytes

protected byte[] getBytes(java.lang.String path)
                   throws java.io.IOException,
                          java.lang.ClassNotFoundException
Returns an array of bytes containing the bytecodes for the class represented by the argument path. The path is a dot separated class name with the ".class" extension removed.

Specified by:
getBytes in class ClassServer
Returns:
the bytecodes for the class
Throws:
java.lang.ClassNotFoundException - if the class corresponding to path could not be loaded.
java.io.IOException - if error occurs reading the class


Copyright © April 2004 INRIA All Rights Reserved.