下面列出了javax.jms.StreamMessage#writeShort ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void sendCompressedStreamMessageUsingOpenWire() throws Exception {
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
ActiveMQDestination destination = createDestination(session, ActiveMQDestination.QUEUE_TYPE);
final ActiveMQMessageProducer producer = (ActiveMQMessageProducer) session.createProducer(destination);
StreamMessage streamMessage = session.createStreamMessage();
streamMessage.writeBoolean(true);
streamMessage.writeByte((byte) 10);
streamMessage.writeBytes(TEXT.getBytes());
streamMessage.writeChar('A');
streamMessage.writeDouble(55.3D);
streamMessage.writeFloat(79.1F);
streamMessage.writeInt(37);
streamMessage.writeLong(56652L);
streamMessage.writeObject(new String("VVVV"));
streamMessage.writeShort((short) 333);
streamMessage.writeString(TEXT);
producer.send(streamMessage);
}
private void sendStreamMessageUsingOpenWire(String queueName) throws Exception {
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
ActiveMQDestination destination = createDestination(session, ActiveMQDestination.QUEUE_TYPE);
final ActiveMQMessageProducer producer = (ActiveMQMessageProducer) session.createProducer(destination);
StreamMessage streamMessage = session.createStreamMessage();
streamMessage.writeBoolean(true);
streamMessage.writeByte((byte) 2);
streamMessage.writeBytes(new byte[]{6, 7});
streamMessage.writeChar('b');
streamMessage.writeDouble(6.5);
streamMessage.writeFloat((float) 93.9);
streamMessage.writeInt(7657);
streamMessage.writeLong(239999L);
streamMessage.writeShort((short) 34222);
streamMessage.writeString("hello streammessage");
producer.send(streamMessage);
}
private void sendTestStreamMessage(ActiveMQConnectionFactory factory, String message) throws JMSException {
ActiveMQConnection connection = (ActiveMQConnection) factory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(queue);
StreamMessage streamMessage = session.createStreamMessage();
streamMessage.writeBoolean(true);
streamMessage.writeByte((byte) 10);
streamMessage.writeBytes(TEXT.getBytes());
streamMessage.writeChar('A');
streamMessage.writeDouble(55.3D);
streamMessage.writeFloat(79.1F);
streamMessage.writeInt(37);
streamMessage.writeLong(56652L);
streamMessage.writeObject(new String("VVVV"));
streamMessage.writeShort((short) 333);
streamMessage.writeString(TEXT);
producer.send(streamMessage);
connection.close();
}
@Override
protected void prepareMessage(final Message m) throws JMSException {
super.prepareMessage(m);
StreamMessage sm = (StreamMessage) m;
sm.writeBoolean(true);
sm.writeByte((byte) 3);
sm.writeBytes(new byte[]{(byte) 4, (byte) 5, (byte) 6});
sm.writeChar((char) 7);
sm.writeDouble(8.0);
sm.writeFloat(9.0f);
sm.writeInt(10);
sm.writeLong(11L);
sm.writeObject("this is an object");
sm.writeShort((short) 12);
sm.writeString("this is a String");
}
@Test
public void testStreamMessage() throws Exception {
MessageCreator messageCreator = session -> {
StreamMessage message = session.createStreamMessage();
message.writeBoolean(true);
message.writeByte(Integer.valueOf(1).byteValue());
message.writeBytes(new byte[] {2, 3, 4});
message.writeShort((short)32);
message.writeInt(64);
message.writeLong(128L);
message.writeFloat(1.25F);
message.writeDouble(100.867);
message.writeChar('c');
message.writeString("someString");
message.writeObject("stringAsObject");
return message;
};
send(messageCreator);
}
private void sendStreamMessageUsingCoreJms(String queueName) throws Exception {
Connection jmsConn = null;
try {
jmsConn = coreCf.createConnection();
Session session = jmsConn.createSession(false, Session.AUTO_ACKNOWLEDGE);
StreamMessage msg = session.createStreamMessage();
msg.writeBoolean(true);
msg.writeByte((byte) 2);
msg.writeBytes(new byte[]{6, 7});
msg.writeChar('b');
msg.writeDouble(6.5);
msg.writeFloat((float) 93.9);
msg.writeInt(7657);
msg.writeLong(239999L);
msg.writeShort((short) 34222);
msg.writeString("hello streammessage");
Queue queue = session.createQueue(queueName);
MessageProducer producer = session.createProducer(queue);
producer.send(msg);
} finally {
if (jmsConn != null) {
jmsConn.close();
}
}
}
@Test
public void testStreamMessage() throws Exception {
final String destinationName = "testStreamMessage";
MessageCreator messageCreator = session -> {
StreamMessage message = session.createStreamMessage();
message.writeBoolean(true);
message.writeByte(Integer.valueOf(1).byteValue());
message.writeBytes(new byte[] {2, 3, 4});
message.writeShort((short)32);
message.writeInt(64);
message.writeLong(128L);
message.writeFloat(1.25F);
message.writeDouble(100.867);
message.writeChar('c');
message.writeString("someString");
message.writeObject("stringAsObject");
return message;
};
byte[] expected;
try (
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream);
) {
dataOutputStream.writeBoolean(true);
dataOutputStream.writeByte(1);
dataOutputStream.write(new byte[] {2, 3, 4});
dataOutputStream.writeShort((short)32);
dataOutputStream.writeInt(64);
dataOutputStream.writeLong(128L);
dataOutputStream.writeFloat(1.25F);
dataOutputStream.writeDouble(100.867);
dataOutputStream.writeChar('c');
dataOutputStream.writeUTF("someString");
dataOutputStream.writeUTF("stringAsObject");
dataOutputStream.flush();
expected = byteArrayOutputStream.toByteArray();
}
ConsumerCallback responseChecker = response -> {
byte[] actual = response.getMessageBody();
assertArrayEquals(
expected,
actual
);
};
testMessage(destinationName, messageCreator, responseChecker);
}