インターフェース BytesMessage
- すべてのスーパーインターフェース:
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
- 関連事項:
フィールドのサマリー
インターフェース jakarta.jms.Message から継承されたフィールド
DEFAULT_DELIVERY_DELAY, DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVEメソッドのサマリー
修飾子と型メソッド説明longメッセージが読み取り専用モードの場合のメッセージ本文のバイト数を取得します。booleanバイトメッセージストリームからbooleanを読み取ります。bytereadByte()バイトメッセージストリームから符号付き 8 ビット値を読み取ります。intreadBytes(byte[] value) バイトメッセージストリームからバイト配列を読み取ります。intreadBytes(byte[] value, int length) バイトメッセージストリームの一部を読み取ります。charreadChar()バイトメッセージストリームから Unicode 文字値を読み取ります。doubleバイトメッセージストリームからdoubleを読み取ります。floatバイトメッセージストリームからfloatを読み取ります。intreadInt()バイトメッセージストリームから符号付き 32 ビット整数を読み取ります。longreadLong()バイトメッセージストリームから符号付き 64 ビット整数を読み取ります。shortバイトメッセージストリームから符号付き 16 ビット数値を読み取ります。intバイトメッセージストリームから符号なし 8 ビット数値を読み取ります。intバイトメッセージストリームから符号なし 16 ビット数を読み取ります。readUTF()バイトメッセージストリームから、変更された UTF-8 形式を使用してエンコードされた文字列を読み取ります。voidreset()メッセージ本文を読み取り専用モードにして、バイトストリームを先頭に再配置します。voidwriteBoolean(boolean value) booleanを 1 バイトの値としてバイトメッセージストリームに書き込みます。voidwriteByte(byte value) byteを 1 バイトの値としてバイトメッセージストリームに書き込みます。voidwriteBytes(byte[] value) バイト配列をバイトメッセージストリームに書き込みます。voidwriteBytes(byte[] value, int offset, int length) バイト配列の一部をバイトメッセージストリームに書き込みます。voidwriteChar(char value) charを 2 バイト値としてバイトメッセージストリームに書き込みます。voidwriteDouble(double value) DoubleクラスのdoubleToLongBitsメソッドを使用して、double引数をlongに変換し、そのlong値を 8 バイトの量として、上位バイトから先にバイトメッセージストリームに書き込みます。voidwriteFloat(float value) FloatクラスのfloatToIntBitsメソッドを使用してfloat引数をintに変換し、そのint値を 4 バイトの量として、上位バイトから先にバイトメッセージストリームに書き込みます。voidwriteInt(int value) intを 4 バイトとしてバイトメッセージストリームに書き込みます。voidwriteLong(long value) longを 8 バイトとして、上位バイトを先にバイトメッセージストリームに書き込みます。voidwriteObject(ObjectSE value) オブジェクトをバイトメッセージストリームに書き込みます。voidwriteShort(short value) shortを 2 バイトとしてバイトメッセージストリームに書き込みます。voidマシンに依存しない方法で UTF-8 エンコーディングを使用して、バイトメッセージストリームに文字列を書き込みます。インターフェース jakarta.jms.Message から継承されたメソッド
acknowledge, clearBody, clearProperties, getBody, getBooleanProperty, getByteProperty, getDoubleProperty, getFloatProperty, getIntProperty, getJMSCorrelationID, getJMSCorrelationIDAsBytes, getJMSDeliveryMode, getJMSDeliveryTime, getJMSDestination, getJMSExpiration, getJMSMessageID, getJMSPriority, getJMSRedelivered, getJMSReplyTo, getJMSTimestamp, getJMSType, getLongProperty, getObjectProperty, getPropertyNames, getShortProperty, getStringProperty, isBodyAssignableTo, propertyExists, setBooleanProperty, setByteProperty, setDoubleProperty, setFloatProperty, setIntProperty, setJMSCorrelationID, setJMSCorrelationIDAsBytes, setJMSDeliveryMode, setJMSDeliveryTime, setJMSDestination, setJMSExpiration, setJMSMessageID, setJMSPriority, setJMSRedelivered, setJMSReplyTo, setJMSTimestamp, setJMSType, setLongProperty, setObjectProperty, setShortProperty, setStringProperty
メソッドの詳細
getBodyLength
メッセージが読み取り専用モードの場合のメッセージ本文のバイト数を取得します。返された値を使用して、バイト配列を割り当てることができます。返される値は、メッセージを読み取るためのポインターが現在どこにあるかに関係なく、メッセージ本文の全長です。- 戻り値:
- メッセージのバイト数
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。- 導入:
- JMS 1.1
readBoolean
バイトメッセージストリームからbooleanを読み取ります。- 戻り値:
- 読み込まれた
boolean値 - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- 予期しないバイトストリームの終わりに達した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readByte
バイトメッセージストリームから符号付き 8 ビット値を読み取ります。- 戻り値:
- 署名された 8 ビット
byteとしてのバイトメッセージストリームからの次のバイト - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- 予期しないバイトストリームの終わりに達した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readUnsignedByte
バイトメッセージストリームから符号なし 8 ビット数値を読み取ります。- 戻り値:
- バイトメッセージストリームの次のバイト。符号なし 8 ビット数として解釈されます
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- 予期しないバイトストリームの終わりに達した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readShort
バイトメッセージストリームから符号付き 16 ビット数値を読み取ります。- 戻り値:
- バイトメッセージストリームの次の 2 バイト。符号付き 16 ビット数として解釈されます
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- 予期しないバイトストリームの終わりに達した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readUnsignedShort
バイトメッセージストリームから符号なし 16 ビット数を読み取ります。- 戻り値:
- バイトメッセージストリームの次の 2 バイト。符号なし 16 ビット整数として解釈されます
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- 予期しないバイトストリームの終わりに達した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readChar
バイトメッセージストリームから Unicode 文字値を読み取ります。- 戻り値:
- Unicode メッセージとしてのバイトメッセージストリームの次の 2 バイト
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- 予期しないバイトストリームの終わりに達した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readInt
バイトメッセージストリームから符号付き 32 ビット整数を読み取ります。- 戻り値:
- バイトメッセージストリームの次の 4 バイト。
intとして解釈されます - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- 予期しないバイトストリームの終わりに達した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readLong
バイトメッセージストリームから符号付き 64 ビット整数を読み取ります。- 戻り値:
- バイトメッセージストリームの次の 8 バイト。
longとして解釈されます - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- 予期しないバイトストリームの終わりに達した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readFloat
バイトメッセージストリームからfloatを読み取ります。- 戻り値:
- バイトメッセージストリームの次の 4 バイト。
floatとして解釈されます - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- 予期しないバイトストリームの終わりに達した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readDouble
バイトメッセージストリームからdoubleを読み取ります。- 戻り値:
- バイトメッセージストリームの次の 8 バイト。
doubleとして解釈されます - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- 予期しないバイトストリームの終わりに達した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readUTF
バイトメッセージストリームから、変更された 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
バイトメッセージストリームからバイト配列を読み取ります。配列
valueの長さがストリームから読み取られる残りのバイト数より短い場合は、配列を埋める必要があります。以降の呼び出しでは、次の増分が読み取られます。ストリームに残っているバイト数が配列
valueの長さより短い場合、バイトを配列に読み込む必要があります。読み取られた合計バイト数の戻り値は配列の長さよりも小さく、ストリームから読み取るバイトが残っていないことを示します。ストリームの次の読み取りは -1 を返します。- パラメーター:
value- データが読み込まれるバッファ- 戻り値:
- バッファーに読み込まれたバイトの総数、またはストリームの終わりに達したためにデータがない場合は -1
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readBytes
バイトメッセージストリームの一部を読み取ります。配列
valueの長さがストリームから読み取られる残りのバイト数より短い場合は、配列を埋める必要があります。以降の呼び出しでは、次の増分が読み取られます。ストリームに残っているバイト数が配列
valueの長さより短い場合、バイトを配列に読み込む必要があります。読み取られた合計バイト数の戻り値は配列の長さよりも小さく、ストリームから読み取るバイトが残っていないことを示します。ストリームの次の読み取りは -1 を返します。lengthが負の場合、またはlengthが配列valueの長さより大きい場合、IndexOutOfBoundsExceptionがスローされます。この例外の場合、ストリームからバイトは読み取られません。- パラメーター:
value- データが読み込まれるバッファlength- 読み取るバイト数。value.length以下である必要があります- 戻り値:
- バッファーに読み込まれたバイトの総数、またはストリームの終わりに達したためにデータがない場合は -1
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
writeBoolean
booleanを 1 バイトの値としてバイトメッセージストリームに書き込みます。値trueは値(byte)1として書き込まれます。値falseは値(byte)0として書き込まれます。- パラメーター:
value- 書き込まれるboolean値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeByte
byteを 1 バイトの値としてバイトメッセージストリームに書き込みます。- パラメーター:
value- 書き込まれるbyte値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeShort
shortを 2 バイトとしてバイトメッセージストリームに書き込みます。- パラメーター:
value- 書き込むshort- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeChar
charを 2 バイト値としてバイトメッセージストリームに書き込みます。- パラメーター:
value- 書き込まれるchar値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeInt
intを 4 バイトとしてバイトメッセージストリームに書き込みます。- パラメーター:
value- 書き込むint- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeLong
longを 8 バイトとして、上位バイトを先にバイトメッセージストリームに書き込みます。- パラメーター:
value- 書き込むlong- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeFloat
FloatクラスのfloatToIntBitsメソッドを使用してfloat引数をintに変換し、そのint値を 4 バイトの量として、上位バイトから先にバイトメッセージストリームに書き込みます。- パラメーター:
value- 書き込まれるfloat値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeDouble
DoubleクラスのdoubleToLongBitsメソッドを使用して、double引数をlongに変換し、そのlong値を 8 バイトの量として、上位バイトから先にバイトメッセージストリームに書き込みます。- パラメーター:
value- 書き込まれるdouble値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeUTF
マシンに依存しない方法で 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
バイト配列をバイトメッセージストリームに書き込みます。- パラメーター:
value- 書き込まれるバイト配列- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeBytes
バイト配列の一部をバイトメッセージストリームに書き込みます。- パラメーター:
value- 書き込まれるバイト配列値offset- バイト配列内の初期オフセットlength- 使用するバイト数- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeObject
オブジェクトをバイトメッセージストリームに書き込みます。このメソッドは、オブジェクト化されたプリミティブオブジェクト型(
Integer、Double、Long...)、Stringオブジェクト、バイト配列に対してのみ機能します。- パラメーター:
value- 書き込まれる Java プログラミング言語のオブジェクト(「Java オブジェクト」)。null であってはなりません- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageFormatException- オブジェクトの型が無効な場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。NullPointerExceptionSE- パラメーターvalueが null の場合。
reset
メッセージ本文を読み取り専用モードにして、バイトストリームを先頭に再配置します。- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージのリセットに失敗した場合。MessageFormatException- メッセージの形式が無効な場合。