1. JMS is a Message service provided by AS. It accepts messages issued by Message Provider and forwards messages to Message Consuer. 2, JMS provides two types of message services: (1) Queue, that is, point-to-point, each message only forwards to a message consumer. (2) Topic, i.e., publish and subscribe, each message can forward to all subscribers (consumers). 3 No information is found) (3) Configuring JMS Server (4) Configuring JMS Queue or JMS Topic in JMS Server Destinations to provide Message generator and message consumers use JMS Connection Factory JNDI and JMS Queue or JMS Topic JNDI. 4, the message generator sends a message to the JMS: (1) Using JMS ConnectionFactory and Destination (JMS Queue / Topic) (2) Using the Administrative Object JMS ConnectionFactory Connection Connection (3) Use Connection Connection to establish session session 4) Use the session session and management object Destination Creating Message Producer Messagesender (5) Use Message Producer Messagesender Send Message A message sender's example: package myjms;
Import java.util. *; import javax.naming. *; import javax.jms. *;
public class MessageProducter {public static void main (String [] args) {String queueConnectionFactoryName = "myjmsconnectionfactory"; // JMS Connection Factory of JNDI String queueName = "myjmsqueue"; // JMS Queue or JMS Topic the JNDI
Boolean Transacted = false; // Transaction mode INT ACKNOWEDGEMENTMODE = session.auto_acknowledge; // Acknowledgement mode string message = "message need be called"; // Simulate the message you need to send
Properties properties = new Properties (); properties.put (Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); properties.put (Context.PROVIDER_URL, "t3: // localhost: 7001");
try {Context context = new InitialContext (properties); Object obj = context.lookup (queueConnectionFactoryName); QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) obj; // JMS Connection Factory obtained obj = context.lookup (queueName); Queue queue = (Queue ) obj; // JMS Queue or JMS Topic is obtained QueueConnection queueConnection = queueConnectionFactory.createQueueConnection (); // generates connection queueConnection.start (); QueueSession queueSession = queueConnection.createQueueSession (transacted, acknowledgementMode); TextMessage textMessage = queueSession.createTextMessage ( ); TextMessage.clearBody (); textMessage.Settext (message); queuesender que Reesender = queness; queuesender.send (TextMessage); if (transacted); {queness ;.commit ();
IF (Queuesender! = null) {Queuesender.close ();} f (queness! = null) {quenessness.close ();} if (queueConnection! = null) {queueConnection.close ();}
} Catch (exception ex) {esprintstacktrace ();}}}
5. Message Consumers Accept messages from JMS: (1) Using JMS ConnectionFactory and Destination (JMS Queue / Topic) (2) Use Management Object JMS ConnectionFactory Connection Connection (3) Use Connection Connection Established Session Session Sference 4) Use session session and management object Destination Creating Message Consumers MessageReceiver (5) Using Message Consumers MessageReceiver accepts messages, you need to use setMessageListener to bind the MessageListener interface to MessageReceiver message, the MessageListener interface, you need to define the OnMessage event method. An example of a message consumer: package myjms;
Import java.util. *; import javax.naming. *; import javax.jms. *;
public class MessageReciever implements MessageListener {public void onMessage (Message message) {if (message instanceof TextMessage) {TextMessage textMessage = (TextMessage) message; try {System.out.println ( "Message content is:" textMessage.getText ()) ;} catch (JMSException e) {e.printStackTrace ();}}} public static void main (String [] args) {MessageReciever msgRcvr = new MessageReciever (); String queueConnectionFactoryName = "myjmsconnectionfactory"; String queueName = "myjmsqueue";
Boolean Transacted = False; int AcknowledgeMode = session.auto_acknowledge;
Properties properties = new Properties (); properties.put (Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); properties.put (Context.PROVIDER_URL, "t3: // localhost: 7001");
try {Context context = new InitialContext (properties); Object obj = context.lookup (queueConnectionFactoryName); QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) obj;
Obj = context.lookup (queuename); queue queue = (queue) OBJ;
. QueueConnection queueConnection = queueConnectionFactory createQueueConnection (); queueConnection.start (); QueueSession queueSession = queueConnection.createQueueSession (transacted, acknowledgementMode); QueueReceiver queueReceiver = queueSession.createReceiver (queue);
QueueReceiver.setMessagelistener (MSGRCVR);
Synchronized (msgrcvr) {msgrcvr.wait (100000);
IF (queuereceiver! = null) {queuereceiver.close ();} if (queness! = null) {quenessness.close ();} if (queueConnection! = null) {queueConnection.close ();}} catch (Exception EX) ) {EX.PrintStackTrace ();}}}
6, Message-Driven Beanmdb is actually a client program for a message consumer. It is managed by AS EJB Container. It is very simple to generate a MDB in JBuilder.