javassist.tools.web

Class Webserver

public class Webserver extends Object

A web server for running sample programs.

This enables a Java program to instrument class files loaded by web browsers for applets. Since the (standard) security manager does not allow an applet to create and use a class loader, instrumenting class files must be done by this web server.

Note: although this class is included in the Javassist API, it is provided as a sample implementation of the web server using Javassist. Especially, there might be security flaws in this server. Please use this with YOUR OWN RISK.

Field Summary
StringdebugDir
If this field is not null, the class files taken from ClassPool are written out under the directory specified by this field.
StringhtmlfileBase
The top directory of html (and .gif, .class, ...) files.
Constructor Summary
Webserver(String port)
Constructs a web server.
Webserver(int port)
Constructs a web server.
Method Summary
voidaddTranslator(ClassPool cp, Translator t)
Adds a translator, which is called whenever a client requests a class file.
voiddoReply(InputStream in, OutputStream out, String cmd)
Proceses a HTTP request from a client.
voidend()
Closes the socket.
voidlogging(String msg)
Prints a log message.
voidlogging(String msg1, String msg2)
Prints a log message.
voidlogging(String msg1, String msg2, String msg3)
Prints a log message.
voidlogging2(String msg)
Prints a log message with indentation.
static voidmain(String[] args)
Starts a web server.
voidrun()
Begins the HTTP service.
voidsetClassPool(ClassPool loader)
Requests the web server to use the specified ClassPool object for obtaining a class file.

Field Detail

debugDir

public String debugDir
If this field is not null, the class files taken from ClassPool are written out under the directory specified by this field. The directory name must not end with a directory separator.

htmlfileBase

public String htmlfileBase
The top directory of html (and .gif, .class, ...) files. It must end with the directory separator such as "/". (For portability, "/" should be used as the directory separator. Javassist automatically translates "/" into a platform-dependent character.) If this field is null, the top directory is the current one where the JVM is running.

If the given URL indicates a class file and the class file is not found under the directory specified by this variable, then Class.getResourceAsStream() is called for searching the Java class paths.

Constructor Detail

Webserver

public Webserver(String port)
Constructs a web server.

Parameters: port port number

Webserver

public Webserver(int port)
Constructs a web server.

Parameters: port port number

Method Detail

addTranslator

public void addTranslator(ClassPool cp, Translator t)
Adds a translator, which is called whenever a client requests a class file.

Parameters: cp the ClassPool object for obtaining a class file. t a translator.

doReply

public void doReply(InputStream in, OutputStream out, String cmd)
Proceses a HTTP request from a client.

Parameters: out the output stream to a client cmd the command received from a client

end

public void end()
Closes the socket.

logging

public void logging(String msg)
Prints a log message.

logging

public void logging(String msg1, String msg2)
Prints a log message.

logging

public void logging(String msg1, String msg2, String msg3)
Prints a log message.

logging2

public void logging2(String msg)
Prints a log message with indentation.

main

public static void main(String[] args)
Starts a web server. The port number is specified by the first argument.

run

public void run()
Begins the HTTP service.

setClassPool

public void setClassPool(ClassPool loader)
Requests the web server to use the specified ClassPool object for obtaining a class file.
Javassist, a Java-bytecode translator toolkit.
Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.