package org.springframework.issues; import java.io.Serializable; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; import org.springframework.stereotype.Component; /** * * @author Stephane Nicoll */ @Component public class MessageSender { public static void main(String[] args) { ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(ActiveMqConfig.class, MessageSender.class); try { MessageSender sender = context.getBean(MessageSender.class); sender.send(); } finally { context.close(); } } private final JmsTemplate jmsTemplate; @Autowired public MessageSender(JmsTemplate jmsTemplate) { this.jmsTemplate = jmsTemplate; } public void send() { System.out.println("Sending class not found messages"); for (int i = 0; i < 100; i++) { jmsTemplate.send("class-not-found-1", new SampleClassNotFoundMessageCreator()); jmsTemplate.send("class-not-found-2", new SampleClassNotFoundMessageCreator()); } System.out.println("Sending a simple text message"); jmsTemplate.send("simple", new SimpleMessageCreator()); } private static class SimpleMessageCreator implements MessageCreator { @Override public Message createMessage(Session session) throws JMSException { return session.createTextMessage("foo bar"); } } public static class SampleClassNotFound implements Serializable { } private static class SampleClassNotFoundMessageCreator implements MessageCreator { @Override public Message createMessage(Session session) throws JMSException { return session.createObjectMessage(new SampleClassNotFound()); } } }