Package org.apache.catalina.tribes

## Class ByteMessage

- java.lang.Object
- - org.apache.catalina.tribes.ByteMessage

- All Implemented Interfaces:
    `java.io.Externalizable`, `java.io.Serializable`

      public class ByteMessage
      extends java.lang.Object
      implements java.io.Externalizable

  A byte message is not serialized and deserialized by the channel instead it is sent as a byte array
  By default Tribes uses java serialization when it receives an object to be sent over the wire. Java serialization is not the most efficient of serializing data, and Tribes might not even have access to the correct class loaders to deserialize the object properly.
  The ByteMessage class is a class where the channel when it receives it will not attempt to perform serialization, instead it will simply stream the `getMessage()` bytes.
  If you are using multiple applications on top of Tribes you should add some sort of header so that you can decide with the `ChannelListener.accept()` whether this message was intended for you.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ByteMessage()` | Creates an empty byte message Constructor also for deserialization
    `ByteMessage​(byte[] data)` | Creates a byte message with

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `byte[]` | `getMessage()` | Returns the message contents of this byte message
    `void` | `readExternal​(java.io.ObjectInput in)` |
    `void` | `setMessage​(byte[] message)` | Sets the message contents of this byte message
    `void` | `writeExternal​(java.io.ObjectOutput out)` |

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

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

- - ### Constructor Detail

    - #### ByteMessage

          public ByteMessage()

      Creates an empty byte message Constructor also for deserialization

    - #### ByteMessage

          public ByteMessage​(byte[] data)

      Creates a byte message with
      Parameters:
        `data` - byte[] - the message contents

  - ### Method Detail

    - #### getMessage

          public byte[] getMessage()

      Returns the message contents of this byte message
      Returns:
        byte[] - message contents, can be null

    - #### setMessage

          public void setMessage​(byte[] message)

      Sets the message contents of this byte message
      Parameters:
        `message` - byte[]

    - #### readExternal

          public void readExternal​(java.io.ObjectInput in)
                            throws java.io.IOException

      Specified by:
        `readExternal` in interface `java.io.Externalizable`
      Parameters:
        `in` - ObjectInput
      Throws:
        `java.io.IOException` - An IO error occurred
      See Also:
        `Externalizable.readExternal(java.io.ObjectInput)`

    - #### writeExternal

          public void writeExternal​(java.io.ObjectOutput out)
                             throws java.io.IOException

      Specified by:
        `writeExternal` in interface `java.io.Externalizable`
      Parameters:
        `out` - ObjectOutput
      Throws:
        `java.io.IOException` - An IO error occurred
      See Also:
        `Externalizable.writeExternal(java.io.ObjectOutput)`