パッケージ jakarta.jms

インターフェース BytesMessage

  • すべてのスーパーインターフェース:
    Message

    public interface BytesMessage
    extends Message
    BytesMessage オブジェクトは、未解釈のバイトのストリームを含むメッセージを送信するために使用されます。Message インターフェースから継承し、バイトメッセージ本文を追加します。メッセージの受信側は、バイトの解釈を提供します。

    BytesMessage メソッドは、主に java.io.DataInputStream および java.io.DataOutputStream にあるメソッドに基づいています。

    このメッセージ型は、既存のメッセージフォーマットのクライアントエンコーディング用です。可能であれば、代わりに他の自己定義メッセージ型の 1 つを使用する必要があります。

    Jakarta Messaging API ではバイトメッセージでメッセージプロパティを使用できますが、プロパティを含めると形式に影響する可能性があるため、通常は使用されません。

    プリミティブ型は、各型のメソッドを使用して明示的に書くことができます。それらは一般的にオブジェクトとして書かれることもあります。たとえば、BytesMessage.writeInt(6) の呼び出しは BytesMessage.writeObject(new Integer(6)) と同等です。明示的なフォームは静的プログラミングに便利であり、コンパイル時に型が不明な場合はオブジェクトフォームが必要であるため、両方のフォームが提供されます。

    メッセージが最初に作成されたとき、および clearBody が呼び出されたとき、メッセージの本文は書き込み専用モードです。reset への最初の呼び出しが行われた後、メッセージ本文は読み取り専用モードになります。BytesMessage が非同期で送信される場合、プロバイダーは CompletionListener に渡された BytesMessage で reset を呼び出す必要があります。これは、CompletionListener が reset を呼び出す必要なくメッセージ本文を読み取ることができることを意味します。メッセージが送信された後、メッセージを送信したクライアントは、送信されたメッセージに影響を与えることなく、メッセージを保持および変更できます。同じメッセージオブジェクトを複数回送信できます。メッセージが受信されると、プロバイダーは reset を呼び出して、メッセージ本文がクライアントに対して読み取り専用モードになるようにしました。

    読み取り専用モードのメッセージで clearBody が呼び出されると、メッセージ本文はクリアされ、メッセージは書き込み専用モードになります。

    クライアントが書き込み専用モードでメッセージを読み取ろうとすると、MessageNotReadableException がスローされます。

    クライアントが読み取り専用モードでメッセージを書き込もうとすると、MessageNotWriteableException がスローされます。

    導入:
    JMS 1.0
    バージョン:
    Jakarta Messaging 2.0
    関連事項:
    Session.createBytesMessage(), MapMessage, Message, ObjectMessage, StreamMessage, TextMessage
    • メソッドの詳細

      • getBodyLength

        long getBodyLength()
                    throws JMSException
        メッセージが読み取り専用モードの場合のメッセージ本文のバイト数を取得します。返された値を使用して、バイト配列を割り当てることができます。返される値は、メッセージを読み取るためのポインターが現在どこにあるかに関係なく、メッセージ本文の全長です。
        戻り値:
        メッセージのバイト数
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
        導入:
        JMS 1.1
      • readBoolean

        boolean readBoolean()
                     throws JMSException
        バイトメッセージストリームから boolean を読み取ります。
        戻り値:
        読み込まれた boolean 値
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageEOFException - 予期しないバイトストリームの終わりに達した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readByte

        byte readByte()
               throws JMSException
        バイトメッセージストリームから符号付き 8 ビット値を読み取ります。
        戻り値:
        署名された 8 ビット byte としてのバイトメッセージストリームからの次のバイト
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageEOFException - 予期しないバイトストリームの終わりに達した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readUnsignedByte

        int readUnsignedByte()
                      throws JMSException
        バイトメッセージストリームから符号なし 8 ビット数値を読み取ります。
        戻り値:
        バイトメッセージストリームの次のバイト。符号なし 8 ビット数として解釈されます
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageEOFException - 予期しないバイトストリームの終わりに達した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readShort

        short readShort()
                 throws JMSException
        バイトメッセージストリームから符号付き 16 ビット数値を読み取ります。
        戻り値:
        バイトメッセージストリームの次の 2 バイト。符号付き 16 ビット数として解釈されます
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageEOFException - 予期しないバイトストリームの終わりに達した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readUnsignedShort

        int readUnsignedShort()
                       throws JMSException
        バイトメッセージストリームから符号なし 16 ビット数を読み取ります。
        戻り値:
        バイトメッセージストリームの次の 2 バイト。符号なし 16 ビット整数として解釈されます
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageEOFException - 予期しないバイトストリームの終わりに達した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readChar

        char readChar()
               throws JMSException
        バイトメッセージストリームから Unicode 文字値を読み取ります。
        戻り値:
        Unicode メッセージとしてのバイトメッセージストリームの次の 2 バイト
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageEOFException - 予期しないバイトストリームの終わりに達した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readInt

        int readInt()
             throws JMSException
        バイトメッセージストリームから符号付き 32 ビット整数を読み取ります。
        戻り値:
        バイトメッセージストリームの次の 4 バイト。int として解釈されます
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageEOFException - 予期しないバイトストリームの終わりに達した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readLong

        long readLong()
               throws JMSException
        バイトメッセージストリームから符号付き 64 ビット整数を読み取ります。
        戻り値:
        バイトメッセージストリームの次の 8 バイト。long として解釈されます
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageEOFException - 予期しないバイトストリームの終わりに達した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readFloat

        float readFloat()
                 throws JMSException
        バイトメッセージストリームから float を読み取ります。
        戻り値:
        バイトメッセージストリームの次の 4 バイト。float として解釈されます
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageEOFException - 予期しないバイトストリームの終わりに達した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readDouble

        double readDouble()
                   throws JMSException
        バイトメッセージストリームから double を読み取ります。
        戻り値:
        バイトメッセージストリームの次の 8 バイト。double として解釈されます
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageEOFException - 予期しないバイトストリームの終わりに達した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readUTF

        StringSE readUTF()
                throws JMSException
        バイトメッセージストリームから、変更された UTF-8 形式を使用してエンコードされた文字列を読み取ります。

        UTF-8 形式の詳細については、「ファイルシステムの安全な UCS 変換形式(FSS_UTF)」、X/Open 暫定仕様、X/Open Company Ltd.、ドキュメント番号: P316 を参照してください。この情報は、ISO/IEC 10646、Annex P にも記載されています。

        戻り値:
        バイトメッセージストリームからの Unicode 文字列
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageEOFException - 予期しないバイトストリームの終わりに達した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readBytes

        int readBytes​(byte[] value)
               throws JMSException
        バイトメッセージストリームからバイト配列を読み取ります。

        配列 value の長さがストリームから読み取られる残りのバイト数より短い場合は、配列を埋める必要があります。以降の呼び出しでは、次の増分が読み取られます。

        ストリームに残っているバイト数が配列 value の長さより短い場合、バイトを配列に読み込む必要があります。読み取られた合計バイト数の戻り値は配列の長さよりも小さく、ストリームから読み取るバイトが残っていないことを示します。ストリームの次の読み取りは -1 を返します。

        パラメーター:
        value - データが読み込まれるバッファ
        戻り値:
        バッファーに読み込まれたバイトの総数、またはストリームの終わりに達したためにデータがない場合は -1
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • readBytes

        int readBytes​(byte[] value,
                      int length)
               throws JMSException
        バイトメッセージストリームの一部を読み取ります。

        配列 value の長さがストリームから読み取られる残りのバイト数より短い場合は、配列を埋める必要があります。以降の呼び出しでは、次の増分が読み取られます。

        ストリームに残っているバイト数が配列 value の長さより短い場合、バイトを配列に読み込む必要があります。読み取られた合計バイト数の戻り値は配列の長さよりも小さく、ストリームから読み取るバイトが残っていないことを示します。ストリームの次の読み取りは -1 を返します。

        length が負の場合、または length が配列 value の長さより大きい場合、IndexOutOfBoundsException がスローされます。この例外の場合、ストリームからバイトは読み取られません。

        パラメーター:
        value - データが読み込まれるバッファ
        length - 読み取るバイト数。value.length 以下である必要があります
        戻り値:
        バッファーに読み込まれたバイトの総数、またはストリームの終わりに達したためにデータがない場合は -1
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。
        MessageNotReadableException - メッセージが書き込み専用モードの場合。
      • writeBoolean

        void writeBoolean​(boolean value)
                   throws JMSException
        boolean を 1 バイトの値としてバイトメッセージストリームに書き込みます。値 true は値 (byte)1 として書き込まれます。値 false は値 (byte)0 として書き込まれます。
        パラメーター:
        value - 書き込まれる boolean 値
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
      • writeByte

        void writeByte​(byte value)
                throws JMSException
        byte を 1 バイトの値としてバイトメッセージストリームに書き込みます。
        パラメーター:
        value - 書き込まれる byte 値
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
      • writeShort

        void writeShort​(short value)
                 throws JMSException
        short を 2 バイトとしてバイトメッセージストリームに書き込みます。
        パラメーター:
        value - 書き込む short 
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
      • writeChar

        void writeChar​(char value)
                throws JMSException
        char を 2 バイト値としてバイトメッセージストリームに書き込みます。
        パラメーター:
        value - 書き込まれる char 値
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
      • writeInt

        void writeInt​(int value)
               throws JMSException
        int を 4 バイトとしてバイトメッセージストリームに書き込みます。
        パラメーター:
        value - 書き込む int 
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
      • writeLong

        void writeLong​(long value)
                throws JMSException
        long を 8 バイトとして、上位バイトを先にバイトメッセージストリームに書き込みます。
        パラメーター:
        value - 書き込む long 
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
      • writeFloat

        void writeFloat​(float value)
                 throws JMSException
        Float クラスの floatToIntBits メソッドを使用して float 引数を int に変換し、その int 値を 4 バイトの量として、上位バイトから先にバイトメッセージストリームに書き込みます。
        パラメーター:
        value - 書き込まれる float 値
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
      • writeDouble

        void writeDouble​(double value)
                  throws JMSException
        Double クラスの doubleToLongBits メソッドを使用して、double 引数を long に変換し、その long 値を 8 バイトの量として、上位バイトから先にバイトメッセージストリームに書き込みます。
        パラメーター:
        value - 書き込まれる double 値
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
      • writeUTF

        void writeUTF​(StringSE value)
               throws JMSException
        マシンに依存しない方法で UTF-8 エンコーディングを使用して、バイトメッセージストリームに文字列を書き込みます。

        UTF-8 形式の詳細については、「ファイルシステムの安全な UCS 変換形式(FSS_UTF)」、X/Open 暫定仕様、X/Open Company Ltd.、ドキュメント番号: P316 を参照してください。この情報は、ISO/IEC 10646、Annex P にも記載されています。

        パラメーター:
        value - 書き込まれる String 値
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
      • writeBytes

        void writeBytes​(byte[] value)
                 throws JMSException
        バイト配列をバイトメッセージストリームに書き込みます。
        パラメーター:
        value - 書き込まれるバイト配列
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
      • writeBytes

        void writeBytes​(byte[] value,
                        int offset,
                        int length)
                 throws JMSException
        バイト配列の一部をバイトメッセージストリームに書き込みます。
        パラメーター:
        value - 書き込まれるバイト配列値
        offset - バイト配列内の初期オフセット
        length - 使用するバイト数
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
      • writeObject

        void writeObject​(ObjectSE value)
                  throws JMSException
        オブジェクトをバイトメッセージストリームに書き込みます。

        このメソッドは、オブジェクト化されたプリミティブオブジェクト型(IntegerDoubleLong ...)、String オブジェクト、バイト配列に対してのみ機能します。

        パラメーター:
        value - 書き込まれる Java プログラミング言語のオブジェクト(「Java オブジェクト」)。null であってはなりません
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。
        MessageFormatException - オブジェクトの型が無効な場合。
        MessageNotWriteableException - メッセージが読み取り専用モードの場合。
        NullPointerExceptionSE - パラメーター value が null の場合。
      • reset

        void reset()
            throws JMSException
        メッセージ本文を読み取り専用モードにして、バイトストリームを先頭に再配置します。
        例外:
        JMSException - 内部エラーのために Jakarta Messaging プロバイダーがメッセージのリセットに失敗した場合。
        MessageFormatException - メッセージの形式が無効な場合。