LOCAL EXECUTION --------------- Creating jndi context - alternatively use a jndi.properties Looking up queue Looking up connection factory Creating connection Creating session Creating sender Creating message Sending message Creating receiver You have to start the connection before receiving messages This receive will work Got message: org.jboss.mq.SpyTextMessage { Header { jmsDestination : QUEUE.testQueue jmsDeliveryMode : 2 jmsExpiration : 0 jmsPriority : 4 jmsMessageID : ID:26-10830850419591 jmsTimeStamp : 1083085041959 jmsCorrelationID: null jmsReplyTo : null jmsType : null jmsRedelivered : false jmsProperties : {} jmsPropertiesReadWrite:false msgReadOnly : true producerClientId: ID:26 } Body { text :hello } } REMOTE EXECUTION ---------------- Creating jndi context - alternatively use a jndi.properties Looking up queue Exception in thread "main" javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1115) at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1192) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:514) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:507) at javax.naming.InitialContext.lookup(InitialContext.java:347) at Client.main(Client.java:33) Caused by: java.net.SocketTimeoutException: Receive timed out at java.net.PlainDatagramSocketImpl.receive(Native Method) at java.net.DatagramSocket.receive(DatagramSocket.java:711) at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1093) ... 5 more