MapMessage (Java EE 5)

Java EE API


javax.jms Interface MapMessage

All Superinterfaces:
Message

public interface MapMessage
extends Message

Implements: Message

MapMessage 对象用于发送一组名称-值对。名称是 String 对象,值是 Java 编程语言中的基本数据类型。名称必须有一个不为 null 的值,并且不能是空字符串。可以根据名称按顺序或随机访问这些条目。条目的顺序是不确定的。MapMessage 继承自 Message 接口并添加了包含 Map 的消息正文。

可以使用用于每种类型的方法显式读取或写入基本类型。它们通常也能作为对象读取或写入。例如,对 MapMessage.setInt("foo", 6) 的调用等效于 MapMessage.setObject("foo", new Integer(6))。这两种形式都提供,因为显式形式对于静态编程很方便,而编译期间类型未知时需要对象形式。

当客户端接收 MapMessage 时,它是只读模式。如果客户端尝试在此时写入消息,则抛出 MessageNotWriteableException。如果调用了 clearBody,现在便可以读取和写入消息。

MapMessage 对象支持下面的转换表。必须支持标记的情况。未标记的情况必须抛出 JMSException。如果基本类型的 valueOf() 方法不接受它作为有效的基本类型 String 表示形式,则 String 到基本类型的转换可能抛出运行时异常。

作为行类型写入的值可以作为列类型读取。

|        | boolean byte short char int long float double String byte[]
 |----------------------------------------------------------------------
|boolean |    X                                            X
|byte    |          X     X         X   X                  X
|short   |                X         X   X                  X
|char    |                     X                           X
|int     |                          X   X                  X
|long    |                              X                  X
|float   |                                    X     X      X
|double  |                                          X      X
|String  |    X     X     X         X   X     X     X      X
|byte[]  |                                                        X
 |----------------------------------------------------------------------
 

尝试将 null 值作为基本类型读取将视同于调用基本类型相应的具有 null 值的 valueOf(String) 转换方法。由于 char 不支持 String 转换,尝试将 null 值作为 char 读取必然抛出 NullPointerException

英文文档:

A MapMessage object is used to send a set of name-value pairs. The names are String objects, and the values are primitive data types in the Java programming language. The names must have a value that is not null, and not an empty string. The entries can be accessed sequentially or randomly by name. The order of the entries is undefined. MapMessage inherits from the Message interface and adds a message body that contains a Map.

The primitive types can be read or written explicitly using methods for each type. They may also be read or written generically as objects. For instance, a call to MapMessage.setInt("foo", 6) is equivalent to MapMessage.setObject("foo", new Integer(6)). Both forms are provided, because the explicit form is convenient for static programming, and the object form is needed when types are not known at compile time.

When a client receives a MapMessage, it is in read-only mode. If a client attempts to write to the message at this point, a MessageNotWriteableException is thrown. If clearBody is called, the message can now be both read from and written to.

MapMessage objects support the following conversion table. The marked cases must be supported. The unmarked cases must throw a JMSException. The String-to-primitive conversions may throw a runtime exception if the primitive's valueOf() method does not accept it as a valid String representation of the primitive.

A value written as the row type can be read as the column type.

 |        | boolean byte short char int long float double String byte[]
 |----------------------------------------------------------------------
 |boolean |    X                                            X
 |byte    |          X     X         X   X                  X
 |short   |                X         X   X                  X
 |char    |                     X                           X
 |int     |                          X   X                  X
 |long    |                              X                  X
 |float   |                                    X     X      X
 |double  |                                          X      X
 |String  |    X     X     X         X   X     X     X      X
 |byte[]  |                                                        X
 |----------------------------------------------------------------------
 

Attempting to read a null value as a primitive type must be treated as calling the primitive's corresponding valueOf(String) conversion method with a null value. Since char does not support a String conversion, attempting to read a null value as a char must throw a NullPointerException.

Version:
1.1 February 2, 002
Author:
Mark Hapner, Rich Burridge
See Also:
Session.createMapMessage(), BytesMessage, Message, ObjectMessage, StreamMessage, TextMessage

Field Summary
 
Fields inherited from interface javax.jms.Message
 
Method Summary
 boolean
 byte
 byte[]
 char
 double
 float
 int
 long
 Enumeration
 Object
 short
 String
 boolean
 void
 void
 void
 void
 void
 void
 void
 void
 void
 void
 void
 void
 
Methods inherited from interface javax.jms.Message
 

Method Detail

public boolean getBoolean(String name) throws JMSException
返回带指定名称的 boolean 值。
name boolean 的名称
return 带指定名称的 boolean
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。
ThrowsMessageFormatException: 如果此类型转换无效。
英文文档:

getBoolean

boolean getBoolean(String name)
                   throws JMSException
Returns the boolean value with the specified name.

Parameters:
name - the name of the boolean
Returns:
the boolean value with the specified name
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.
MessageFormatException - if this type conversion is invalid.

public byte getByte(String name) throws JMSException
返回带指定名称的 byte 值。
name byte 的名称
return 带指定名称的 byte
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。
ThrowsMessageFormatException: 如果此类型转换无效。
英文文档:

getByte

byte getByte(String name)
             throws JMSException
Returns the byte value with the specified name.

Parameters:
name - the name of the byte
Returns:
the byte value with the specified name
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.
MessageFormatException - if this type conversion is invalid.

public short getShort(String name) throws JMSException
返回带指定名称的 short 值。
name short 的名称
return 带指定名称的 short
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。
ThrowsMessageFormatException: 如果此类型转换无效。
英文文档:

getShort

short getShort(String name)
               throws JMSException
Returns the short value with the specified name.

Parameters:
name - the name of the short
Returns:
the short value with the specified name
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.
MessageFormatException - if this type conversion is invalid.

public char getChar(String name) throws JMSException
返回带指定名称的 Unicode 字符值。
name Unicode 字符的名称
return 带指定名称的 Unicode 字符值
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。
ThrowsMessageFormatException: 如果此类型转换无效。
英文文档:

getChar

char getChar(String name)
             throws JMSException
Returns the Unicode character value with the specified name.

Parameters:
name - the name of the Unicode character
Returns:
the Unicode character value with the specified name
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.
MessageFormatException - if this type conversion is invalid.

public int getInt(String name) throws JMSException
返回带指定名称的 int 值。
name int 的名称
return 带指定名称的 int
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。
ThrowsMessageFormatException: 如果此类型转换无效。
英文文档:

getInt

int getInt(String name)
           throws JMSException
Returns the int value with the specified name.

Parameters:
name - the name of the int
Returns:
the int value with the specified name
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.
MessageFormatException - if this type conversion is invalid.

public long getLong(String name) throws JMSException
返回带指定名称的 long 值。
name long 的名称
return 带指定名称的 long
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。
ThrowsMessageFormatException: 如果此类型转换无效。
英文文档:

getLong

long getLong(String name)
             throws JMSException
Returns the long value with the specified name.

Parameters:
name - the name of the long
Returns:
the long value with the specified name
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.
MessageFormatException - if this type conversion is invalid.

public float getFloat(String name) throws JMSException
返回带指定名称的 float 值。
name float 的名称
return 带指定名称的 float
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。
ThrowsMessageFormatException: 如果此类型转换无效。
英文文档:

getFloat

float getFloat(String name)
               throws JMSException
Returns the float value with the specified name.

Parameters:
name - the name of the float
Returns:
the float value with the specified name
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.
MessageFormatException - if this type conversion is invalid.

public double getDouble(String name) throws JMSException
返回带指定名称的 double 值。
name double 的名称
return 带指定名称的 double
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。
ThrowsMessageFormatException: 如果此类型转换无效。
英文文档:

getDouble

double getDouble(String name)
                 throws JMSException
Returns the double value with the specified name.

Parameters:
name - the name of the double
Returns:
the double value with the specified name
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.
MessageFormatException - if this type conversion is invalid.

public String getString(String name) throws JMSException
返回带指定名称的 String 值。
name String 的名称
return 带指定名称的 String 值;如果没有具有此名称的项,则返回 null 值
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。
ThrowsMessageFormatException: 如果此类型转换无效。
英文文档:

getString

String getString(String name)
                 throws JMSException
Returns the String value with the specified name.

Parameters:
name - the name of the String
Returns:
the String value with the specified name; if there is no item by this name, a null value is returned
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.
MessageFormatException - if this type conversion is invalid.

public byte[] getBytes(String name) throws JMSException
返回带指定名称的 byte 数组值。
name byte 数组的名称
return 带指定名称的 byte 数组值的副本;如果没有具有此名称的项,则返回 null 值。
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。
ThrowsMessageFormatException: 如果此类型转换无效。
英文文档:

getBytes

byte[] getBytes(String name)
                throws JMSException
Returns the byte array value with the specified name.

Parameters:
name - the name of the byte array
Returns:
a copy of the byte array value with the specified name; if there is no item by this name, a null value is returned.
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.
MessageFormatException - if this type conversion is invalid.

public Object getObject(String name) throws JMSException
返回带指定名称的对象值。

可以使用此方法(以对象化格式)返回 Java 编程语言中的对象(“Java 对象”),该对象已使用对等的 setObject 方法调用或其对等的基本 settype 方法存储在 Map 中。

注意,byte 值以 byte[] 的形式返回,而不是 Byte[]

name Java 对象的名称
return 带指定名称的 Java 对象值的副本,以对象化格式返回(例如,如果对象设置为 int,则返回 Integer);如果没有具有此名称的项,则返回 null 值
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。

英文文档:

getObject

Object getObject(String name)
                 throws JMSException
Returns the value of the object with the specified name.

This method can be used to return, in objectified format, an object in the Java programming language ("Java object") that had been stored in the Map with the equivalent setObject method call, or its equivalent primitive settype method.

Note that byte values are returned as byte[], not Byte[].

Parameters:
name - the name of the Java object
Returns:
a copy of the Java object value with the specified name, in objectified format (for example, if the object was set as an int, an Integer is returned); if there is no item by this name, a null value is returned
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.

public java.util.Enumeration<E> getMapNames() throws JMSException
返回 MapMessage 对象中所有名称的 Enumeration
returnMapMessage 中所有名称的枚举
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法读取消息。
英文文档:

getMapNames

Enumeration getMapNames()
                        throws JMSException
Returns an Enumeration of all the names in the MapMessage object.

Returns:
an enumeration of all the names in this MapMessage
Throws:
JMSException - if the JMS provider fails to read the message due to some internal error.

public void setBoolean(String name, boolean value) throws JMSException
将带指定名称的 boolean 值设置到 Map 中。
name boolean 的名称
value 要在 Map 中设置的 boolean
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsIllegalArgumentException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageNotWriteableException: 如果消息是只读模式。
英文文档:

setBoolean

void setBoolean(String name,
                boolean value)
                throws JMSException
Sets a boolean value with the specified name into the Map.

Parameters:
name - the name of the boolean
value - the boolean value to set in the Map
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException - if the name is null or if the name is an empty string.
MessageNotWriteableException - if the message is in read-only mode.

public void setByte(String name, byte value) throws JMSException
将带指定名称的 byte 值设置到 Map 中。
name byte 的名称
value 要在 Map 中设置的 byte
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsIllegalArgumentException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageNotWriteableException: 如果消息是只读模式。
英文文档:

setByte

void setByte(String name,
             byte value)
             throws JMSException
Sets a byte value with the specified name into the Map.

Parameters:
name - the name of the byte
value - the byte value to set in the Map
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException - if the name is null or if the name is an empty string.
MessageNotWriteableException - if the message is in read-only mode.

public void setShort(String name, short value) throws JMSException
将带指定名称的 short 值设置到 Map 中。
name short 的名称
value 要在 Map 中设置的 short
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsIllegalArgumentException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageNotWriteableException: 如果消息是只读模式。
英文文档:

setShort

void setShort(String name,
              short value)
              throws JMSException
Sets a short value with the specified name into the Map.

Parameters:
name - the name of the short
value - the short value to set in the Map
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException - if the name is null or if the name is an empty string.
MessageNotWriteableException - if the message is in read-only mode.

public void setChar(String name, char value) throws JMSException
将带指定名称的 Unicode 字符值设置到 Map 中。
name Unicode 字符的名称
value 要在 Map 中设置的 Unicode 字符值
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsIllegalArgumentException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageNotWriteableException: 如果消息是只读模式。
英文文档:

setChar

void setChar(String name,
             char value)
             throws JMSException
Sets a Unicode character value with the specified name into the Map.

Parameters:
name - the name of the Unicode character
value - the Unicode character value to set in the Map
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException - if the name is null or if the name is an empty string.
MessageNotWriteableException - if the message is in read-only mode.

public void setInt(String name, int value) throws JMSException
将带指定名称的 int 值设置到 Map 中。
name int 的名称
value 要在 Map 中设置的 int
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsIllegalArgumentException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageNotWriteableException: 如果消息是只读模式。
英文文档:

setInt

void setInt(String name,
            int value)
            throws JMSException
Sets an int value with the specified name into the Map.

Parameters:
name - the name of the int
value - the int value to set in the Map
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException - if the name is null or if the name is an empty string.
MessageNotWriteableException - if the message is in read-only mode.

public void setLong(String name, long value) throws JMSException
将带指定名称的 long 值设置到 Map 中。
name long 的名称
value 要在 Map 中设置的 long
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsIllegalArgumentException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageNotWriteableException: 如果消息是只读模式。
英文文档:

setLong

void setLong(String name,
             long value)
             throws JMSException
Sets a long value with the specified name into the Map.

Parameters:
name - the name of the long
value - the long value to set in the Map
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException - if the name is null or if the name is an empty string.
MessageNotWriteableException - if the message is in read-only mode.

public void setFloat(String name, float value) throws JMSException
将带指定名称的 float 值设置到 Map 中。
name float 的名称
value 要在 Map 中设置的 float
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsIllegalArgumentException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageNotWriteableException: 如果消息是只读模式。
英文文档:

setFloat

void setFloat(String name,
              float value)
              throws JMSException
Sets a float value with the specified name into the Map.

Parameters:
name - the name of the float
value - the float value to set in the Map
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException - if the name is null or if the name is an empty string.
MessageNotWriteableException - if the message is in read-only mode.

public void setDouble(String name, double value) throws JMSException
将带指定名称的 double 值设置到 Map 中。
name double 的名称
value 要在 Map 中设置的 double
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsIllegalArgumentException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageNotWriteableException: 如果消息是只读模式。
英文文档:

setDouble

void setDouble(String name,
               double value)
               throws JMSException
Sets a double value with the specified name into the Map.

Parameters:
name - the name of the double
value - the double value to set in the Map
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException - if the name is null or if the name is an empty string.
MessageNotWriteableException - if the message is in read-only mode.

public void setString(String name, String value) throws JMSException
将带指定名称的 String 值设置到 Map 中。
name String 的名称
value 要在 Map 中设置的 String
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsIllegalArgumentException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageNotWriteableException: 如果消息是只读模式。
英文文档:

setString

void setString(String name,
               String value)
               throws JMSException
Sets a String value with the specified name into the Map.

Parameters:
name - the name of the String
value - the String value to set in the Map
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException - if the name is null or if the name is an empty string.
MessageNotWriteableException - if the message is in read-only mode.

public void setBytes(String name, byte[] value) throws JMSException
将带指定名称的 byte 数组值设置到 Map 中。
name byte 数组的名称
value 要在 Map 中设置的 byte 数组值;数组是复制的,因此,将不能通过以后修改来改变 name 的值
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsNullPointerException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageNotWriteableException: 如果消息是只读模式。
英文文档:

setBytes

void setBytes(String name,
              byte[] value)
              throws JMSException
Sets a byte array value with the specified name into the Map.

Parameters:
name - the name of the byte array
value - the byte array value to set in the Map; the array is copied so that the value for name will not be altered by future modifications
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
NullPointerException - if the name is null, or if the name is an empty string.
MessageNotWriteableException - if the message is in read-only mode.

public void setBytes(String name, byte[] value, int offset, int length) throws JMSException
将带指定名称的 byte 数组值的一部分设置到 Map 中。
name byte 数组的名称
value 要在 Map 中设置的 byte 数组值
offset byte 数组中的初始偏移量
length 要使用的字节数
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsIllegalArgumentException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageNotWriteableException: 如果消息是只读模式。
英文文档:

setBytes

void setBytes(String name,
              byte[] value,
              int offset,
              int length)
              throws JMSException
Sets a portion of the byte array value with the specified name into the Map.

Parameters:
name - the name of the byte array
value - the byte array value to set in the Map
offset - the initial offset within the byte array
length - the number of bytes to use
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException - if the name is null or if the name is an empty string.
MessageNotWriteableException - if the message is in read-only mode.

public void setObject(String name, Object value) throws JMSException
将带指定名称的对象值设置到 Map 中。

此方法仅用于对象化的基本对象类型(IntegerDoubleLong 等)、String 对象和 byte 数组。

name Java 对象的名称
value 要在 Map 中设置的 Java 对象值
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法写入消息。
ThrowsIllegalArgumentException: 如果名称为 null,或者名称为空字符串。
ThrowsMessageFormatException: 如果对象无效。
ThrowsMessageNotWriteableException: 如果消息是只读模式。

英文文档:

setObject

void setObject(String name,
               Object value)
               throws JMSException
Sets an object value with the specified name into the Map.

This method works only for the objectified primitive object types (Integer, Double, Long ...), String objects, and byte arrays.

Parameters:
name - the name of the Java object
value - the Java object value to set in the Map
Throws:
JMSException - if the JMS provider fails to write the message due to some internal error.
IllegalArgumentException - if the name is null or if the name is an empty string.
MessageFormatException - if the object is invalid.
MessageNotWriteableException - if the message is in read-only mode.

public boolean itemExists(String name) throws JMSException
指示此 MapMessage 对象中是否存在某个项。
name 要测试的项的名称
return 如果存在该项,则返回 true
ThrowsJMSException: 如果 JMS 提供者由于某个内部错误无法确定是否存在该项。
英文文档:

itemExists

boolean itemExists(String name)
                   throws JMSException
Indicates whether an item exists in this MapMessage object.

Parameters:
name - the name of the item to test
Returns:
true if the item exists
Throws:
JMSException - if the JMS provider fails to determine if the item exists due to some internal error.


Submit a bug or feature

Copyright 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.

一看就知道只有菜鸟才干这么无知的事啦。

PS : 未经我党受权你也可自由散发此文档。 如有任何错误请自行修正;若因此而造成任何损失请直接找人民主席,请勿与本人联系。谢谢!