パッケージ 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
関連事項:
  • メソッドの詳細

    • 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 - メッセージの形式が無効な場合。