Class ClassServer
java.lang.Object
|
+--ClassServer
- All Implemented Interfaces:
- java.lang.Runnable
- Direct Known Subclasses:
- ClassFileServer
- public abstract class ClassServer
- extends java.lang.Object
- implements java.lang.Runnable
ClassServer is an abstract class that provides the
basic functionality of a mini-webserver, specialized
to load class files only. A ClassServer must be extended
and the concrete subclass should define the getBytes
method which is responsible for retrieving the bytecodes
for a class.
The ClassServer creates a thread that listens on a socket
and accepts HTTP GET requests. The HTTP response contains the
bytecodes for the class that requested in the GET header.
For loading remote classes, an RMI application can use a concrete
subclass of this server in place of an HTTP server.
- See Also:
ClassFileServer
Constructor Summary |
protected |
ClassServer(int port)
Constructs a ClassServer that listens on port and
obtains a class's bytecodes using the method getBytes. |
Method Summary |
abstract byte[] |
getBytes(java.lang.String path)
Returns an array of bytes containing the bytecodes for
the class represented by the argument path.
|
void |
run()
The "listen" thread that accepts a connection to the
server, parses the header to obtain the class file name
and sends back the bytecodes for the class (or error
if the class is not found or the response was malformed). |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ClassServer
protected ClassServer(int port)
throws java.io.IOException
- Constructs a ClassServer that listens on port and
obtains a class's bytecodes using the method getBytes.
- Parameters:
port
- the port number- Throws:
java.io.IOException
- if the ClassServer could not listen
on port.
getBytes
public abstract 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.
- 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
run
public void run()
- The "listen" thread that accepts a connection to the
server, parses the header to obtain the class file name
and sends back the bytecodes for the class (or error
if the class is not found or the response was malformed).
- Specified by:
run
in interface java.lang.Runnable