|
|||||||||||
| 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.Runnableprivate 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 | ||||||||||