Package net.reversehttp.examples

Source Code of net.reversehttp.examples.TestReverseHttpService

package net.reversehttp.examples;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.net.URL;
import java.text.DateFormat;
import java.util.Date;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;

import net.reversehttp.HttpRequest;
import net.reversehttp.HttpServer;
import net.reversehttp.RequestHandler;
import net.reversehttp.ReverseHttpServer;

public class TestReverseHttpService implements RequestHandler,
        PropertyChangeListener {
    public static void main(String[] args) {
        configureLogging();
        Logger.getLogger(TestReverseHttpService.class.getName()).log(
                Level.FINE, "Starting");
        try {
            String label;

            label = (args.length > 0) ? args[0] : "java";
            String hostAndPort = (args.length > 1) ? args[1]
                    : "localhost:8000";

            URL reflectorUrl = new URL("http://" + hostAndPort + "/reversehttp");
            TestReverseHttpService service = new TestReverseHttpService();
            HttpServer httpd = new ReverseHttpServer(label, reflectorUrl,
                    service);
            ((ReverseHttpServer) httpd).addPropertyChangeListener(service);
            httpd.serve();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void configureLogging() {
        ConsoleHandler handler = new ConsoleHandler();
        Logger root = Logger.getLogger("");
        root.addHandler(handler);
        // handler.setLevel(Level.FINER);
        // root.setLevel(Level.FINER);
    }

    private int counter = 0;
    private DateFormat df = DateFormat.getDateTimeInstance();

    public void handleRequest(HttpRequest req) {
        Date now = new Date();
        System.err.println(df.format(now) + " [" + req.getClientHost() + ":"
                + req.getClientPort() + "] " + req.getMethod() + " "
                + req.getRawPath() + " HTTP/" + req.getHttpVersion());
        req.setResponse(200, "OK");
        req.getResponse()
                .setHeader("Content-type", "text/plain; charset=utf-8");
        req.getResponse()
                .setBody("This is document #" + (counter++) + " served from Java\n");
    }

    public void propertyChange(PropertyChangeEvent evt) {
        if (evt.getPropertyName().equals("location")) {
            System.out.println("Location changed to " + evt.getNewValue());
        }
    }
}
TOP

Related Classes of net.reversehttp.examples.TestReverseHttpService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.