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
`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
`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)`