@Override public void onSuccess(org.springframework.amqp.core.Message result) { AbstractIntegrationMessageBuilder<?> replyMessageBuilder = null; try { replyMessageBuilder = buildReply(AsyncAmqpOutboundGateway.this.messageConverter, result); sendOutputs(replyMessageBuilder, this.requestMessage); } catch (Exception e) { Exception exceptionToLogAndSend = e; if (!(e instanceof MessagingException)) { exceptionToLogAndSend = new MessageHandlingException(this.requestMessage, e); if (replyMessageBuilder != null) { exceptionToLogAndSend = new MessagingException(replyMessageBuilder.build(), exceptionToLogAndSend); } } logger.error("Failed to send async reply: " + result.toString(), exceptionToLogAndSend); sendErrorMessage(this.requestMessage, exceptionToLogAndSend); } }
@Override public void returnedMessage(Message message, int i, String s, String s1, String s2) { System.out.println("sender return success" + message.toString()+"==="+i+"==="+s1+"==="+s2); }
@Override public void onSuccess(org.springframework.amqp.core.Message result) { AbstractIntegrationMessageBuilder<?> replyMessageBuilder = null; try { replyMessageBuilder = buildReply(AsyncAmqpOutboundGateway.this.messageConverter, result); sendOutputs(replyMessageBuilder, this.requestMessage); } catch (Exception e) { Exception exceptionToLogAndSend = e; if (!(e instanceof MessagingException)) { exceptionToLogAndSend = new MessageHandlingException(this.requestMessage, e); if (replyMessageBuilder != null) { exceptionToLogAndSend = new MessagingException(replyMessageBuilder.build(), exceptionToLogAndSend); } } logger.error("Failed to send async reply: " + result.toString(), exceptionToLogAndSend); sendErrorMessage(this.requestMessage, exceptionToLogAndSend); } }
@Test public void fooNotDeserialized() { Message message = new SimpleMessageConverter().toMessage(new Foo(), new MessageProperties()); assertThat(message.toString(), not(containsString("aFoo"))); Message listMessage = new SimpleMessageConverter().toMessage(Collections.singletonList(new Foo()), new MessageProperties()); assertThat(listMessage.toString(), not(containsString("aFoo"))); Message.addWhiteListPatterns(Foo.class.getName()); assertThat(message.toString(), containsString("aFoo")); assertThat(listMessage.toString(), containsString("aFoo")); }
@Test public void toStringForNonStringMessageBody() { Message message = new Message(SerializationUtils.serialize(new Date()), null); assertNotNull(message.toString()); }
@Test public void serialization() throws Exception { MessageProperties messageProperties = new MessageProperties(); messageProperties.setDeliveryMode(MessageDeliveryMode.NON_PERSISTENT); messageProperties.setHeader("foo", "bar"); messageProperties.setContentType("text/plain"); Message message = new Message("baz".getBytes(), messageProperties); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream os = new ObjectOutputStream(baos); os.writeObject(message); os.close(); ObjectInputStream is = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray())); Message out = (Message) is.readObject(); assertEquals(new String(message.getBody()), new String(out.getBody())); assertEquals(message.toString(), out.toString()); }
@Test public void toStringForNullMessageProperties() { Message message = new Message(new byte[0], null); assertNotNull(message.toString()); }
@Test public void toStringForNonSerializableMessageBody() { MessageProperties messageProperties = new MessageProperties(); messageProperties.setContentType(MessageProperties.CONTENT_TYPE_SERIALIZED_OBJECT); Message message = new Message("foo".getBytes(), messageProperties); assertNotNull(message.toString()); }
@Test public void toStringForSerializableMessageBody() { MessageProperties messageProperties = new MessageProperties(); messageProperties.setContentType(MessageProperties.CONTENT_TYPE_SERIALIZED_OBJECT); Message message = new Message(SerializationUtils.serialize(new Date()), messageProperties); assertNotNull(message.toString()); }
@Test public void toStringForEmptyMessageBody() { Message message = new Message(new byte[0], new MessageProperties()); assertNotNull(message.toString()); }