Announcement Announcement Module
Collapse
No announcement yet.
Help for this really easy test with JMS using Apache Active MQ 5.3.2 Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Help for this really easy test with JMS using Apache Active MQ 5.3.2

    Hi all,

    I'm a newbie about JMS, I've issues with this easy JMS sample, receiver waits the message and then goes to timeout. Who knows if sender has sent it correctly, maybe yes because I don't have error on sender which ends correctly.

    Of course JMS Broker is up and running.

    Fragment codes:

    jms_test.xml
    Code:
    ...
    	<!--  Broker JMS -->
    	<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    		<property name="brokerURL" value="tcp://127.0.0.1:61616"/>
    	</bean>
    	
    	<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    		<property name="connectionFactory" ref="connectionFactory" />
    		<property name="receiveTimeout" value="60000"/>		<!-- attesa max del msg in ms da parte del ricevente -->
    		<!-- <property name="defaultDestination" ref="testTopic" /> destinazione di defualt, evitiamo di inserirla nel metodo send()-->
    	</bean>
    	
    	<bean id="testTopic" class="org.apache.activemq.command.ActiveMQTopic">
    		<constructor-arg index="0" value="test.topic"/>
    	</bean>
    	<!--  Broker JMS -->
    	
    	<!-- SENDER -->
    	<bean id="mySender" class="TestJMSSender">
    		<property name="jmsTemplate" ref="jmsTemplate" />
    		<property name="dest" ref="testTopic" />
    	</bean>
    	<!-- SENDER -->
    	
    	<!-- RECEIVER -->
    	<bean id="myReceiver" class="TestJMSReceiver">
    		<property name="jmsTemplate" ref="jmsTemplate" /> 
    		<property name="dest" ref="testTopic" />
    	</bean>
    	<!-- RECEIVER -->
    TestJMSSender.java
    Code:
    public class TestJMSSender {
    	public static Logger log=Logger.getRootLogger();
    	public static ApplicationContext context;
    	
    	private JmsTemplate jmsTemplate;
    	private Destination dest;
    	
    	public static void main(String[] args) {
    		context=new FileSystemXmlApplicationContext("jms_test.xml");
    		
    		log.info("Start appl");
    
    		TestJMSSender sender=(TestJMSSender)context.getBean("mySender");
    		sender.send();
    		System.out.println("Message sent !");
    		
    		log.info("End appl");
    	}
    	
    	/**
    	 *  Creazione messaggio JMS ed invio
    	 */
    	private void send(){
    		jmsTemplate.send(
    				dest,
    				new MessageCreator(){
    					public Message createMessage(Session session)
    					throws JMSException {
    					MapMessage message = session.createMapMessage();
    					message.setString("first", "alex");
    					message.setString("last", "black");
    					message.setString("text", "Hello");
    					return message;
    					}
    				}
    				);
    	}
    
    	public void setJmsTemplate(JmsTemplate jmsTemplate) {
    		this.jmsTemplate = jmsTemplate;
    	}
    
    	public void setDest(Destination dest) {
    		this.dest = dest;
    	}
    }
    TestJMSReceiver.java
    Code:
    public class TestJMSReceiver {
    	public static Logger log=Logger.getRootLogger();
    	public static ApplicationContext context;
    	
    	private JmsTemplate jmsTemplate;
    	private Destination dest;
    	
    	public static void main(String[] args){
    		context=new FileSystemXmlApplicationContext("jms_test.xml");
    		
    		log.info("Start appl");
    		
    		TestJMSReceiver receiv=(TestJMSReceiver)context.getBean("myReceiver");
    		System.out.println("Retrieve message");
    		MapMessage message =receiv.receive();
    		
    		System.out.println("Received message:");
    		try {
    			System.out.println(message.getString("first"));
    			System.out.println(message.getString("last"));
    			System.out.println(message.getString("text"));
    			} 
    		catch (JMSException e) {
    			throw JmsUtils.convertJmsAccessException(e);
    		}
    
    		log.info("End appl");
    	}
    
    	private MapMessage receive() {
    		//return (MapMessage)jmsTemplate.receive();
    		return (MapMessage)jmsTemplate.receive(dest);
    	}
    
    	public void setJmsTemplate(JmsTemplate jmsTemplate) {
    		this.jmsTemplate = jmsTemplate;
    	}
    	public void setDest(Destination dest) {
    		this.dest = dest;
    	}
    }
    Log file
    Code:
    2010-Jun-03 17:37:59  INFO TestJMSSender (line:38) - Start appl
    2010-Jun-03 17:37:59 DEBUG org.apache.activemq.transport.WireFormatNegotiator (line:82) - Sending: WireFormatInfo { version=5, properties={CacheSize=1024, CacheEnabled=true, SizePrefixDisabled=false, MaxInactivityDurationInitalDelay=10000, TcpNoDelayEnabled=true, MaxInactivityDuration=30000, TightEncodingEnabled=true, StackTraceEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
    2010-Jun-03 17:37:59 DEBUG org.apache.activemq.transport.WireFormatNegotiator (line:118) - Received WireFormat: WireFormatInfo { version=5, properties={CacheSize=1024, CacheEnabled=true, SizePrefixDisabled=false, MaxInactivityDurationInitalDelay=10000, TcpNoDelayEnabled=true, MaxInactivityDuration=30000, TightEncodingEnabled=true, StackTraceEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
    2010-Jun-03 17:37:59 DEBUG org.apache.activemq.transport.WireFormatNegotiator (line:125) - tcp:///127.0.0.1:61616 before negotiation: OpenWireFormat{version=5, cacheEnabled=false, stackTraceEnabled=false, tightEncodingEnabled=false, sizePrefixDisabled=false}
    2010-Jun-03 17:37:59 DEBUG org.apache.activemq.transport.WireFormatNegotiator (line:140) - tcp:///127.0.0.1:61616 after negotiation: OpenWireFormat{version=5, cacheEnabled=true, stackTraceEnabled=true, tightEncodingEnabled=true, sizePrefixDisabled=false}
    2010-Jun-03 17:37:59 DEBUG org.apache.activemq.transport.tcp.TcpTransport (line:459) - Stopping transport tcp:///127.0.0.1:61616
    2010-Jun-03 17:37:59  INFO TestJMSSender (line:44) - End appl
    2010-Jun-03 17:38:03  INFO TestJMSReceiver (line:22) - Start appl
    2010-Jun-03 17:38:03 DEBUG org.apache.activemq.transport.WireFormatNegotiator (line:82) - Sending: WireFormatInfo { version=5, properties={CacheSize=1024, CacheEnabled=true, SizePrefixDisabled=false, MaxInactivityDurationInitalDelay=10000, TcpNoDelayEnabled=true, MaxInactivityDuration=30000, TightEncodingEnabled=true, StackTraceEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
    2010-Jun-03 17:38:03 DEBUG org.apache.activemq.transport.WireFormatNegotiator (line:118) - Received WireFormat: WireFormatInfo { version=5, properties={CacheSize=1024, CacheEnabled=true, SizePrefixDisabled=false, MaxInactivityDurationInitalDelay=10000, TcpNoDelayEnabled=true, MaxInactivityDuration=30000, TightEncodingEnabled=true, StackTraceEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
    2010-Jun-03 17:38:03 DEBUG org.apache.activemq.transport.WireFormatNegotiator (line:125) - tcp:///127.0.0.1:61616 before negotiation: OpenWireFormat{version=5, cacheEnabled=false, stackTraceEnabled=false, tightEncodingEnabled=false, sizePrefixDisabled=false}
    2010-Jun-03 17:38:03 DEBUG org.apache.activemq.transport.WireFormatNegotiator (line:140) - tcp:///127.0.0.1:61616 after negotiation: OpenWireFormat{version=5, cacheEnabled=true, stackTraceEnabled=true, tightEncodingEnabled=true, sizePrefixDisabled=false}
    Thanks all and BR,
    Ale
Working...
X