インターフェース 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
フィールドサマリー
インターフェース jakarta.jms.Message から継承されたフィールド
DEFAULT_DELIVERY_DELAY, DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 long
getBodyLength()
メッセージが読み取り専用モードの場合のメッセージ本文のバイト数を取得します。boolean
readBoolean()
バイトメッセージストリームからboolean
を読み取ります。byte
readByte()
バイトメッセージストリームから符号付き 8 ビット値を読み取ります。int
readBytes(byte[] value)
バイトメッセージストリームからバイト配列を読み取ります。int
readBytes(byte[] value, int length)
バイトメッセージストリームの一部を読み取ります。char
readChar()
バイトメッセージストリームから Unicode 文字値を読み取ります。double
readDouble()
バイトメッセージストリームからdouble
を読み取ります。float
readFloat()
バイトメッセージストリームからfloat
を読み取ります。int
readInt()
バイトメッセージストリームから符号付き 32 ビット整数を読み取ります。long
readLong()
バイトメッセージストリームから符号付き 64 ビット整数を読み取ります。short
readShort()
バイトメッセージストリームから符号付き 16 ビット数値を読み取ります。int
readUnsignedByte()
バイトメッセージストリームから符号なし 8 ビット数値を読み取ります。int
readUnsignedShort()
バイトメッセージストリームから符号なし 16 ビット数を読み取ります。StringSE
readUTF()
バイトメッセージストリームから、変更された UTF-8 形式を使用してエンコードされた文字列を読み取ります。void
reset()
メッセージ本文を読み取り専用モードにして、バイトストリームを先頭に再配置します。void
writeBoolean(boolean value)
boolean
を 1 バイトの値としてバイトメッセージストリームに書き込みます。void
writeByte(byte value)
byte
を 1 バイトの値としてバイトメッセージストリームに書き込みます。void
writeBytes(byte[] value)
バイト配列をバイトメッセージストリームに書き込みます。void
writeBytes(byte[] value, int offset, int length)
バイト配列の一部をバイトメッセージストリームに書き込みます。void
writeChar(char value)
char
を 2 バイト値としてバイトメッセージストリームに書き込みます。void
writeDouble(double value)
Double
クラスのdoubleToLongBits
メソッドを使用して、double
引数をlong
に変換し、そのlong
値を 8 バイトの量として、上位バイトから先にバイトメッセージストリームに書き込みます。void
writeFloat(float value)
Float
クラスのfloatToIntBits
メソッドを使用してfloat
引数をint
に変換し、そのint
値を 4 バイトの量として、上位バイトから先にバイトメッセージストリームに書き込みます。void
writeInt(int value)
int
を 4 バイトとしてバイトメッセージストリームに書き込みます。void
writeLong(long value)
long
を 8 バイトとして、上位バイトを先にバイトメッセージストリームに書き込みます。void
writeObject(ObjectSE value)
オブジェクトをバイトメッセージストリームに書き込みます。void
writeShort(short value)
short
を 2 バイトとしてバイトメッセージストリームに書き込みます。void
writeUTF(StringSE value)
マシンに依存しない方法で 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
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
オブジェクトをバイトメッセージストリームに書き込みます。このメソッドは、オブジェクト化されたプリミティブオブジェクト型(
Integer
、Double
、Long
...)、String
オブジェクト、バイト配列に対してのみ機能します。- パラメーター:
value
- 書き込まれる Java プログラミング言語のオブジェクト(「Java オブジェクト」)。null であってはなりません- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageFormatException
- オブジェクトの型が無効な場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。NullPointerExceptionSE
- パラメーターvalue
が null の場合。
reset
void reset() throws JMSException
メッセージ本文を読み取り専用モードにして、バイトストリームを先頭に再配置します。- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージのリセットに失敗した場合。MessageFormatException
- メッセージの形式が無効な場合。