Home

Awesome

AJP 1.3 Client

This small library is a Java AJP client code extracted from Apache Tomcat test harness. This is not yet a general-purpose client connector; it takes more work to turn it into one.

First, look at AJP Protocol Reference to understand how the protocol works.

The following code examples shows a usage of this library in the original Tomcat test code:

// open connection
SimpleAjpClient ac = new SimpleAjpClient();
ac.connect("localhost",10059);

// create a message that indicates the beginning of the request
TesterAjpMessage forwardMessage = ac.createForwardMessage("/test.xxx");
forwardMessage.addHeader("content-length","0");
forwardMessage.end();


for (int i = 0; i < 2; i++) {
    TesterAjpMessage responseHeaders = ac.sendMessage(forwardMessage);
    // Expect 3 packets: headers, body, end
    validateResponseHeaders(responseHeaders, 200);
    TesterAjpMessage responseBody = ac.readMessage();
    validateResponseBody(responseBody, "Hello");
    validateResponseEnd(ac.readMessage(), true);

    // Give connections plenty of time to time out
    Thread.sleep(2000);

    // Double check the connection is still open
    validateCpong(ac.cping());
}

ac.disconnect();