org.apache.catalina.tribes

## Class ByteMessage

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

- All Implemented Interfaces:
    Externalizable, Serializable

      public class ByteMessage
      extends Object
      implements 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 and Description
    `ByteMessage()` Creates an empty byte message Constructor also for deserialization
    `ByteMessage(byte[] data)` Creates a byte message wit h

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `getMessage()` Returns the message contents of this byte message
    `void` | `readExternal(ObjectInput in)`
    `void` | `setMessage(byte[] message)` Sets the message contents of this byte message
    `void` | `writeExternal(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 wit h
      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(ObjectInput in)
                            throws IOException

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

    - #### writeExternal

          public void writeExternal(ObjectOutput out)
                             throws IOException

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

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