import java.util.Properties; import javax.naming.*; import javax.jms.*;
/** * This class creates a queue then sends and receives (synchronously) messages sent to that queue. */ public class SynchQueue { private static final String USER = "Administrator"; private static final String PASSWORD = "admin_pass"; private static final String SAP_NAMING_PROVIDER_URL = "localhost:50004"; private static final String SAP_INITIAL_CONTEXT_FACTORY_IMPL = "com.sap.engine.services.jndi.InitialContextFactoryImpl";
QueueConnectionFactory queueConnectionFactory = null; QueueConnection queueConnection = null; Queue queue = null; QueueSession queueSession = null; QueueReceiver queueReceiver = null; QueueSender queueSender = null; TextMessage textMessage = null;
/** * Gets InitialContext with default values. */ private InitialContext getInitialContext() { try { // set the properties for the InitalContext Properties properties = new Properties(); properties.put( Context.INITIAL_CONTEXT_FACTORY, SAP_INITIAL_CONTEXT_FACTORY_IMPL); properties.put(Context.PROVIDER_URL, SAP_NAMING_PROVIDER_URL); properties.put(Context.SECURITY_PRINCIPAL, USER); properties.put(Context.SECURITY_CREDENTIALS, PASSWORD);
// initalize and return the InitalContext with the specified properties return new InitialContext(properties);
} catch (NamingException ne) { System.out.println("NamingException: " + ne); }
return null; }
private void initJMS() { try { InitialContext context = getInitialContext();
// look up the QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) context.lookup( " jmsfactory/default/QueueConnectionFactory");
// create queue connection queueConnection = queueConnectionFactory.createQueueConnection();
// start the connection queueConnection.start();
} catch (NamingException ne) { System.out.println("NamingException: " + ne); } catch (JMSException jmse) { System.out.println("JMSException: " + jmse); } }
/** * Closes all resources used in this test. This should be called * when finished using the JMS. */ private void closeJMS() { try {
//closes the jms queue session queueSession.close();
//closes the jms queue connection queueConnection.close();
} catch (JMSException jmse) { System.out.println("JMSException: " + jmse); } }
/** * Creates queue connection and session. Receives messages sent * to the queue. */ public synchronized void aMethod() { try { // initializes all important data that will be used. initJMS();
// create queue session queueSession = queueConnection.createQueueSession( false, Session.AUTO_ACKNOWLEDGE);
// create queue queue = queueSession.createQueue("ExampleQueue");
// create sender queueSender = queueSession.createSender(queue);
// create receiver queueReceiver = queueSession.createReceiver(queue);
// create appropriate message textMessage = queueSession.createTextMessage("Just a test");
// send message queueSender.send(textMessage);
// receive message textMessage = (TextMessage) queueReceiver.receive();
// get message contents String messageText = textMessage.getText();
System.out.println("Message text: " + messageText);
// Closes all resorces used in this test. closeJMS();
} catch (JMSException e) { System.out.println("" + e); } } }
|