ann
冰是没有未来的,因为它的永恒
posts - 107,comments - 34,trackbacks - 0
1.jms接收的客户端

   首先,创建jms Listener 
  
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 
*/

package com.test.jms;



import com.sun.messaging.ConnectionConfiguration;
import com.sun.messaging.ConnectionFactory;
import com.sun.messaging.Queue;
import com.sun.messaging.Topic;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.QueueConnection;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.TopicConnection;


/**
 *
 * 
@author ann
 
*/
public class JMSListener  implements MessageListener {

    String topicName 
= "mytopic" ;     //要监听的topic名字
    String queueName = "myqueue" ;     //要监听的queue的名字
    String brokerHost = "localhost" ;  //OpenMQ server (broker)的ip
    String brokerPort = "7676" ;  //OpenMQ server (broker)的port
    String username = "test";          //test账号必须有可以接受此queue或者topic的权限
    String password = "test";
    ConnectionFactory       connectionFactory 
= null;
   
// TopicConnection              connection = null;
    QueueConnection              connection = null;
    Destination  destination 
= null;
    Session                 session 
= null;
    MessageConsumer               consumer 
= null;
    TextMessage                  message 
= null;

    
public JMSListener(){
    }

    
public void onMessage(Message msg){
        
if(msg instanceof TextMessage){
            TextMessage txt 
= (TextMessage)msg;
            
try {
                System.out.println(
"msg : " + txt.getText());
            } 
catch (JMSException ex) {
                Logger.getLogger(JMSListener.
class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    
private void init() throws Exception{
        connectionFactory 
=  new ConnectionFactory();
        connectionFactory.setProperty(ConnectionConfiguration.imqBrokerHostName, brokerHost);
        connectionFactory.setProperty(ConnectionConfiguration.imqBrokerHostPort, brokerPort);
 
//       connectionFactory.setProperty(ConnectionConfiguration.imqBrokerServiceName,brokerName);
        connectionFactory.setProperty(ConnectionConfiguration.imqDefaultUsername,username);
        connectionFactory.setProperty(ConnectionConfiguration.imqDefaultPassword,password);
//        connection = connectionFactory.createTopicConnection();
        connection = connectionFactory.createQueueConnection();
        session 
=  connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        
//destination =  new Topic(topicName);
        destination =  new Queue(queueName);
        consumer 
= session.createConsumer(destination);
        connection.start();
    }

   
// 消费消息
    public void consumeMessage() throws JMSException, Exception {
        init();
        connection.start();

        System.out.println(
"Consumer:->Begin listening");
        
// 开始监听
        consumer.setMessageListener(this);
        
// Message message = consumer.receive();
    }

    
public void destory() throws JMSException{
        consumer.close();
        session.close();
        connection.close();
        System.out.println(
"Consumer:->stop listening");
    }
//启动listen
public static void main(String[] args) throws Exception {
        JMSListener listen 
= new JMSListener();
        listen.consumeMessage();
        
//五秒后关闭监听
        try {
            Thread.sleep(
5000);
        } 
catch (Exception e) {
        }
        listen.destory();

    }
}


2. 创建jms发送端
  
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 
*/

package com.test.jms;

import com.sun.messaging.ConnectionConfiguration;
import com.sun.messaging.ConnectionFactory;
import com.sun.messaging.Queue;
import com.sun.messaging.Topic;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.QueueConnection;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.TopicConnection;

/**
 *
 * 
@author ann
 
*/
public class Send {
    
    String topicName 
= "mytopic" ;     //要监听的topic名字
    String queueName = "myqueue" ;     //要监听的queue的名字
    String brokerHost = "localhost" ;  //OpenMQ server (broker)的ip
    String brokerPort = "7676" ;  //OpenMQ server (broker)的port
    String username = "customer";          //customer账号必须有可以发送此queue或者topic的权限
    String password = "customer";
    ConnectionFactory       connectionFactory 
= null;
    
//TopicConnection              connection = null;
    QueueConnection              connection = null;
    Destination  destination 
= null;
    Session                 session 
= null;
    MessageProducer               producer 
= null;
    TextMessage                  message 
= null;

    
public Send(){
        
try {
            init();
        } 
catch (Exception ex) {
           ex.printStackTrace();
        }

    }
     
private void init() throws Exception{
        connectionFactory 
=  new ConnectionFactory();
        
//connectionFactory.setProperty("imqAddressList","localhost:7676");
        connectionFactory.setProperty(ConnectionConfiguration.imqBrokerHostName, brokerHost);
        connectionFactory.setProperty(ConnectionConfiguration.imqBrokerHostPort, brokerPort);
        connectionFactory.setProperty(ConnectionConfiguration.imqDefaultUsername,username);
        connectionFactory.setProperty(ConnectionConfiguration.imqDefaultPassword,password);
        
//connection = connectionFactory.createTopicConnection();

        connection 
= connectionFactory.createQueueConnection();

       session 
=  connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
       
// destination =  new Topic(topicName);
       destination =  new Queue(queueName);
        
//session.createTopic(topicName);
        producer = session.createProducer(destination);

        connection.start();
    }
     
public void send(String msg) throws JMSException{
        
try {
            message 
= session.createTextMessage();
            message.setText(msg);
            System.out.println(
"Producer:->Sending message: " + msg);
            producer.send(message);
            System.out.println(
"Producer:->Message sent complete!");
           
        } 
catch (JMSException ex) {
            ex.printStackTrace();
        }
finally{
             connection.close();
        }
     }

     
public static void main(String[] args)throws JMSException {
        
        Send send 
= new Send();
        send.send(
"test user : ann");
    }



}



  

posted on 2009-04-24 10:42 冰是没有未来的,因为它的永恒 阅读(1762) 评论(0)  编辑  收藏 所属分类: java

当下,把心放下 放下如果是可能的,那一定是在当下,
不在过去,也不在未来。
当下放下。唯有活在当下,你的问题才能放下。