AjpProcessor (Apache Tomcat 7.0.108 API Documentation)

org.apache.coyote.ajp

## Class AjpProcessor

- java.lang.Object
- - org.apache.coyote.AbstractProcessor<S>
  - - org.apache.coyote.ajp.AbstractAjpProcessor<Socket>
    - - org.apache.coyote.ajp.AjpProcessor

- All Implemented Interfaces:
    ActionHook, Processor<Socket>

      public class AjpProcessor
      extends AbstractAjpProcessor<Socket>

  Processes AJP requests.
  Author:
    Remy Maucherat, Henri Gomez, Dan Milstein, Keith Wannamaker, Kevin Seguin, Costin Manolache, Bill Barker

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.coyote.ajp.AbstractAjpProcessor

      `AbstractAjpProcessor.SocketInputBuffer, AbstractAjpProcessor.SocketOutputBuffer`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected InputStream` | `input` Input stream.
    `protected OutputStream` | `output` Output stream.

    - ### Fields inherited from class org.apache.coyote.ajp.AbstractAjpProcessor

      `ajpFlush, bodyBytes, bodyMessage, bytesWritten, certificates, clientCertProvider, empty, endAndCloseMessageArray, endMessageArray, endOfStream, finished, first, flushMessageArray, getBodyMessageArray, keepAliveTimeout, packetSize, pongMessageArray, replay, requestHeaderMessage, requiredSecret, responseMessage, secret, sm, tmpMB, tomcatAuthentication`

    - ### Fields inherited from class org.apache.coyote.AbstractProcessor

      `adapter, asyncStateMachine, endpoint, hostNameC, request, response, socketWrapper, userDataHelper`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AjpProcessor(int packetSize, JIoEndpoint endpoint)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `actionInternal(ActionCode actionCode, Object param)` Send an action to the connector.
    `protected Log` | `getLog()`
    `protected void` | `output(byte[] src, int offset, int length)`
    `AbstractEndpoint.Handler.SocketState` | `process(SocketWrapper<Socket> socket)` Process pipelined HTTP requests using the specified input and output streams.
    `protected boolean` | `read(byte[] buf, int pos, int n)` Read at least the specified amount of bytes, and place them in the input buffer.
    `protected boolean` | `readMessage(AjpMessage message)` Read an AJP message.
    `boolean` | `receive()` Receive a chunk of data.
    `void` | `recycle(boolean socketClosing)` Recycle the processor, ready for the next request which may be on the same connection or a different connection.
    `protected void` | `resetTimeouts()` Provides a mechanism for those connector implementations (currently only NIO) that need to reset timeouts from Async timeouts to standard HTTP timeouts once async processing completes.

    - ### Methods inherited from class org.apache.coyote.ajp.AbstractAjpProcessor

      `action, asyncDispatch, event, finish, flush, getAjpFlush, getClientCertProvider, getHttpUpgradeHandler, getKeepAliveTimeout, getTomcatAuthentication, getTomcatAuthorization, getUpgradeInbound, isComet, isUpgrade, populateHost, populatePort, prepareRequest, prepareResponse, refillReadBuffer, setAjpFlush, setAllowedRequestAttributesPatternPattern, setClientCertProvider, setKeepAliveTimeout, setRequiredSecret, setSecret, setSslSupport, setTomcatAuthentication, setTomcatAuthorization, upgradeDispatch, upgradeDispatch`

    - ### Methods inherited from class org.apache.coyote.AbstractProcessor

      `asyncPostProcess, errorDispatch, getAdapter, getAsyncStateMachine, getEndpoint, getErrorState, getExecutor, getMaxCookieCount, getRequest, getSocketWrapper, isAsync, parseHost, resetErrorState, setAdapter, setErrorState, setMaxCookieCount, setSocketWrapper`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### input

          protected InputStream input

      Input stream.

    - #### output

          protected OutputStream output

      Output stream.

  - ### Constructor Detail

    - #### AjpProcessor

          public AjpProcessor(int packetSize,
                      JIoEndpoint endpoint)

  - ### Method Detail

    - #### getLog

          protected Log getLog()

      Specified by:
        `getLog` in class `AbstractProcessor<Socket>`

    - #### process

          public AbstractEndpoint.Handler.SocketState process(SocketWrapper<Socket> socket)
                                                       throws IOException

      Process pipelined HTTP requests using the specified input and output streams.
      Specified by:
        `process` in interface `Processor<Socket>`
      Specified by:
        `process` in class `AbstractProcessor<Socket>`
      Throws:
        `IOException` - error during an I/O operation

    - #### recycle

          public void recycle(boolean socketClosing)

      Description copied from class: `AbstractAjpProcessor`
      Recycle the processor, ready for the next request which may be on the same connection or a different connection.
      Specified by:
        `recycle` in interface `Processor<Socket>`
      Overrides:
        `recycle` in class `AbstractAjpProcessor<Socket>`
      Parameters:
        `socketClosing` - Indicates if the socket is about to be closed allowing the processor to perform any additional clean-up that may be required

    - #### actionInternal

          protected void actionInternal(ActionCode actionCode,
                            Object param)

      Send an action to the connector.
      Specified by:
        `actionInternal` in class `AbstractAjpProcessor<Socket>`
      Parameters:
        `actionCode` - Type of the action
        `param` - Action parameter

    - #### resetTimeouts

          protected void resetTimeouts()

      Description copied from class: `AbstractAjpProcessor`
      Provides a mechanism for those connector implementations (currently only NIO) that need to reset timeouts from Async timeouts to standard HTTP timeouts once async processing completes.
      Specified by:
        `resetTimeouts` in class `AbstractAjpProcessor<Socket>`

    - #### output

          protected void output(byte[] src,
                    int offset,
                    int length)
                         throws IOException

      Specified by:
        `output` in class `AbstractAjpProcessor<Socket>`
      Throws:
        `IOException`

    - #### read

          protected boolean read(byte[] buf,
                     int pos,
                     int n)
                          throws IOException

      Read at least the specified amount of bytes, and place them in the input buffer.
      Parameters:
        `buf` - Buffer to read data into
        `pos` - Start position
        `n` - The minimum number of bytes to read
      Returns:
        `true` if the requested number of bytes were read else `false`
      Throws:
        `IOException` - If an I/O error occurs during the read

    - #### receive

          public boolean receive()
                          throws IOException

      Receive a chunk of data. Called to implement the 'special' packet in ajp13 and to receive the data after we send a GET_BODY packet
      Specified by:
        `receive` in class `AbstractAjpProcessor<Socket>`
      Throws:
        `IOException`

    - #### readMessage

          protected boolean readMessage(AjpMessage message)
                                 throws IOException

      Read an AJP message.
      Parameters:
        `message` - The message object to populate
      Returns:
        true if the message has been read, false if the short read didn't return anything
      Throws:
        `IOException` - any other failure, including incomplete reads

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.