|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectappli.http.HttpServer
HttpServer is an abstract class that provides the basic functionality of a mini-webserver, specialized to load files only. This HttpServer must be extended and the concrete subclass should define the getBytes method which is responsible for retrieving the bytecodes for a class.
The HttpServer 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.
This server was originally only a java .class server and was called ClassServer
HttpFileServer
Field Summary | |
private int |
port
|
private java.net.ServerSocket |
server
|
Constructor Summary | |
protected |
HttpServer(int port)
Constructs a ClassServer that listens on port and obtains any file using the method getBytes. |
Method Summary | |
abstract byte[] |
getBytes(java.lang.String path)
Returns an array of bytes containing the file represented by the argument path. |
private static java.lang.String |
getPath(java.io.BufferedReader in)
Returns the path to the class file obtained from parsing the HTML header. |
private void |
newListener()
Create a new thread to listen. |
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 content of the file (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 |
Field Detail |
private java.net.ServerSocket server
private int port
Constructor Detail |
protected HttpServer(int port) throws java.io.IOException
port
- the port number
java.io.IOException
- if the ClassServer could not listen
on port.Method Detail |
public abstract byte[] getBytes(java.lang.String path) throws java.io.IOException, java.lang.ClassNotFoundException
path
- the file path
java.lang.ClassNotFoundException
- if the class corresponding
to path could not be loaded.
java.io.IOException
- if error occurs reading the classpublic void run()
run
in interface java.lang.Runnable
private void newListener()
private static java.lang.String getPath(java.io.BufferedReader in) throws java.io.IOException
in
- input reader
java.io.IOException
- if reading fails
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |