Este contenido no está disponible en el idioma seleccionado.
3.5. JMS MapMessage Types
Qpid supports the Java JMS
MapMessage interface, which provides support for maps in messages. The following code shows how to send a MapMessage in Java JMS.
Example 3.5. Sending a Java JMS MapMessage
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.MapMessage;
import javax.jms.MessageProducer;
import javax.jms.Session;
import java.util.Arrays;
// !!! SNIP !!!
MessageProducer producer = session.createProducer(queue);
MapMessage m = session.createMapMessage();
m.setIntProperty("Id", 987654321);
m.setStringProperty("name", "Widget");
m.setDoubleProperty("price", 0.99);
List<String> colors = new ArrayList<String>();
colors.add("red");
colors.add("green");
colors.add("white");
m.setObject("colours", colors);
Map<String,Double> dimensions = new HashMap<String,Double>();
dimensions.put("length",10.2);
dimensions.put("width",5.1);
dimensions.put("depth",2.0);
m.setObject("dimensions",dimensions);
List<List<Integer>> parts = new ArrayList<List<Integer>>();
parts.add(Arrays.asList(new Integer[] {1,2,5}));
parts.add(Arrays.asList(new Integer[] {8,2,5}));
m.setObject("parts", parts);
Map<String,Object> specs = new HashMap<String,Object>();
specs.put("colours", colors);
specs.put("dimensions", dimensions);
specs.put("parts", parts);
m.setObject("specs",specs);
producer.send(m);
The following table shows the datatypes that can be sent in a
MapMessage, and the corresponding datatypes that will be received by clients in Python or C++.
| Java Datatype | Python | C++ |
|---|---|---|
| boolean | bool | bool |
| short | int | long | int16 |
| int | int | long | int32 |
| long | int | long | int64 |
| float | float | float |
| double | float | double |
| java.lang.String | unicode | std::string |
| java.util.UUID | uuid | qpid::types::Uuid |
| java.util.Map[a] | dict | Variant::Map |
| java.util.List | list | Variant::List |
[a]
In Qpid, maps can nest. This goes beyond the functionality required by the JMS specification.
| ||