MQ JMS 發布訂閱配置、代碼-中文4

public static String url = “file:/D:/JNDI-Directory01”;

 

    public static void main(String[] vars) throws JMSException, NamingException

    {

    
 

     ConnectionFactory factory = null;

     Connection connection = null;

     Session session = null;

     Destination destination= null; // a destination can be a topic or a queue

     MessageProducer producer= null;

    
 

     try

     {

 

         JNDIUtil jndiUtil= new JNDIUtil(icf,url);

         
 

         factory= jndiUtil.getConnectionFactory(“TestQMConnectionFactory”);

        
 

         connection = factory.createConnection();        

         connection.start();

         //您可以使用連接對象來創建一個會話:

         // Indicate a non-transactional session

         boolean transacted = false;

         session = connection.createSession( transacted, Session.AUTO_ACKNOWLEDGE);        

         //發布消息,獲取新聞的目標對象,創建一個MessageProducer,然後發送消息:

         destination = jndiUtil.getDestination(“NewsTopic”);

        
 

         producer = session.createProducer(destination);

        
 

TextMessage message = session.createTextMessage(“No News is Good News!111”);

producer.send(message);    

 

System.out.println(“NewsPublisher: Message Publication Completed”);

        
 

     }

     finally

     {

         // Always release resources

    
 

         if ( producer!= null )

          producer.close();

 

         if ( session!= null )

             session.close();

 

         if ( connection!= null )

             connection.close();

    
 

     }

    }            

}

EmailSubscriber和SMSSubscriber

這兩個類的電子郵件應用程序和SMS應用程序(參見清單3和清單4)。因為你已經定義在MQ資源管理器中訂閱,這兩個應用程序簡單地從用戶隊列中讀取消息。

Java的代碼

package com.test.pubsub;

 

/**


*
Listing
3.
EmailSubscriber


*
This
class
represents
the
email
application.


*/

 

//JMS classes

import javax.jms.JMSException;

import javax.jms.ConnectionFactory;

import javax.jms.Connection;

import javax.jms.Session;

import javax.jms.Destination;

import javax.jms.MessageConsumer;

import javax.jms.TextMessage;

 

 

//JNDI classes

import javax.naming.NamingException;

 

/**


*
A
class
to
demonstrate
how
to
retrieve
publications
from
subscription
queues.


*
EmailSubscriber和SMSSubscriber


*
這兩個類的電子郵件應用程序和SMS應用程序(參見清單3和清單4)。


*
因為你已經定義在MQ資源管理器中訂閱,這兩個應用程序簡單地從用戶隊列中讀取消息。


*/

public
class EmailSubscriber

{

 


public
static String icf = “com.sun.jndi.fscontext.RefFSContextFactory”;


public
static String url = “file:/D:/JNDI-Directory01”;

 

    public
static
void main(String[] vars) throws JMSException, NamingException

    {

    
 

     ConnectionFactory factory = null;

     Connection connection = null;

     Session session = null;

     Destination destination= null; // a destination can be a topic or a queue

     MessageConsumer consumer= null;

    
 

     try

     {

 

         JNDIUtil jndiUtil= new JNDIUtil(icf,url);

         
 

         factory= jndiUtil.getConnectionFactory(“TestQMConnectionFactory”);

        
 

         connection = factory.createConnection();        

         connection.start();

             
 

         // Indicate a non-transactional session

         boolean transacted = false;

         session = connection.createSession( transacted, Session.AUTO_ACKNOWLEDGE);        

 

         destination = jndiUtil.getDestination(“EmailQueue”);

        
 

         consumer = session.createConsumer(destination);

    
 

    TextMessage iMsg = (TextMessage) consumer.receive(1000);

 

    if ( iMsg != null )         

         System.out.println( iMsg.getText() );

     else

         System.out.println( “No messages in queue “ );

 

System.out.println(“EmailSubscriber: Message Reading Completed”);     

        
 

     }

     finally

     {

         // Always release resources

    
 

         if ( consumer!= null )

          consumer.close();

 

         if ( session!= null )

             session.close();

 

         if ( connection!= null )

             connection.close();

    
 

     }

    }            

}

Java代碼

package com.test.pubsub;

 

/**


*
Listing
4.
SMSSubscriber


*
This
class
represents
the
SMS
application.


*/

 

//JMS classes

import javax.jms.JMSException;

import javax.jms.ConnectionFactory;

import javax.jms.Connection;

import javax.jms.Session;

import javax.jms.Destination;

import javax.jms.MessageConsumer;

import javax.jms.TextMessage;

 

 

//JNDI classes

import javax.naming.NamingException;

 

/**


*
A
class
to
demonstrate
how
to
retrieve
publications
from
subscription
queues.


*/

public
class SMSSubscriber

{

 


public
static String icf = “com.sun.jndi.fscontext.RefFSContextFactory”;


public
static String url = “file:/D:/JNDI-Directory01”;

 

    public
static
void main(String[] vars) throws JMSException, NamingException

    {

    
 

     ConnectionFactory factory = null;

     Connection connection = null;

     Session session = null;

     Destination destination= null; // a destination can be a topic or a queue

     MessageConsumer consumer= null;

    
 

     try

     {

 

         JNDIUtil jndiUtil= new JNDIUtil(icf,url);

         
 

         factory= jndiUtil.getConnectionFactory(“TestQMConnectionFactory”);

        
 

         connection = factory.createConnection();        

         connection.start();

             
 

         // Indicate a non-transactional session

         boolean transacted = false;

         session = connection.createSession( transacted, Session.AUTO_ACKNOWLEDGE);        

 

         destination = jndiUtil.getDestination(“SMSQueue”);

        
 

         consumer = session.createConsumer(destination);

    
 

    TextMessage iMsg = (TextMessage) consumer.receive(1000);

    
 

     if ( iMsg != null )         

         System.out.println( iMsg.getText() );

     else

         System.out.println( “No messages in queue “ );

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營