<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    和風細雨

    世上本無難事,心以為難,斯乃真難。茍不存一難之見于心,則運用之術(shù)自出。

    一個JMS發(fā)送接受程序示例(Weblogic)

    一.Prop類(用來讀取屬性文件,單例)

    package com.sitinspring.standardWeblogicJms;

    import java.io.FileInputStream;
    import java.util.Hashtable;
    import java.util.Properties;

    import javax.naming.Context;
    import javax.naming.InitialContext;

    public class Props {
        
    private static final String File_Name = "jmsSetting.properties";

        
    private static Properties propts;

        
    public static void makeProptsInstance() {
            propts 
    = new Properties();

            
    try {
                propts.load(
    new FileInputStream(File_Name));
            }
     catch (Exception ex) {
                ex.printStackTrace();
            }

        }

        
        
    public static String get(String name){
            
    if(propts==null){
                makeProptsInstance();
            }

            
            
    return (String)propts.get(name);
        }

        
        @SuppressWarnings(
    "unchecked")
        
    public static Context getInitialContext(){
            Context context
    =null;
            
            String jndiFactory
    =Props.get("jndi.factory");
            String providerUrl
    =Props.get("jndi.provider.url");
            
            Hashtable env
    =new Hashtable();        
            env.put(Context.INITIAL_CONTEXT_FACTORY, jndiFactory);
            env.put(Context.PROVIDER_URL, providerUrl);
            
            
    try {
                context
    =new InitialContext(env);
            }
     catch (Exception ex) {
                ex.printStackTrace();
            }

            
            
    return context;
        }

    }

    二.QueueBase類(QueueComsumer和QueueSupplier的基類,用于歸納一些兩類共通的東西)
    package com.sitinspring.standardWeblogicJms;

    import javax.jms.Queue;
    import javax.jms.QueueConnection;
    import javax.jms.QueueConnectionFactory;
    import javax.jms.QueueSession;
    import javax.jms.Session;
    import javax.naming.Context;

    public class QueueBase{
        
    protected QueueConnectionFactory queueConnectionFactory;
        
    protected QueueConnection queueConnection;
        
    protected QueueSession queueSession;
        
    protected Queue queue;
        
        
    public QueueBase(Context context){
            
    try{
                String jmsFactory
    =Props.get("jms.factory");
                queueConnectionFactory
    =(QueueConnectionFactory)context.lookup(jmsFactory);
                queueConnection
    =queueConnectionFactory.createQueueConnection();
                queueSession
    =queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
                
                String queueName
    =Props.get("queue.name");
                queue
    =(Queue)context.lookup(queueName);
            }

            
    catch(Exception ex){
                ex.printStackTrace();
            }

        }

    }

    三.QueueComsumer類(用于接收消息)
    package com.sitinspring.standardWeblogicJms;

    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageListener;
    import javax.jms.QueueReceiver;
    import javax.jms.TextMessage;
    import javax.naming.Context;

    public class QueueComsumer extends QueueBase implements MessageListener {
        
    private QueueReceiver queueReceiver;

        
    public QueueComsumer(Context context) {
            
    super(context);

            
    try {
                queueReceiver 
    = queueSession.createReceiver(queue);
                queueReceiver.setMessageListener(
    this);
                queueConnection.start();
            }
     catch (Exception ex) {
                ex.printStackTrace();
            }

        }


        
    public void onMessage(Message message) {
            
    if (message instanceof TextMessage) {
                TextMessage txtmsg 
    = (TextMessage) message;

                
    try {
                    System.out.println(
    "I have received the TextMassage:"
                            
    + txtmsg.getText());
                }
     catch (JMSException e) {
                    e.printStackTrace();
                }

            }

        }


        
    public void close() throws JMSException {
            queueReceiver.close();
            queueSession.close();
            queueConnection.close();
        }


        
    public static void main(String[] args) {
            Context context 
    = Props.getInitialContext();
            QueueComsumer queueComsumer 
    = new QueueComsumer(context);

            
    synchronized (queueComsumer) {
                
    while (true{
                    
    try {
                        queueComsumer.wait();
                    }
     catch (InterruptedException interruptedException) {
                        interruptedException.printStackTrace();

                        
    try {
                            queueComsumer.close();
                        }
     catch (JMSException e) {
                            e.printStackTrace();
                        }

                    }

                }

            }

        }

    }

    四.QueueSupplier類(用于發(fā)送消息)
    package com.sitinspring.standardWeblogicJms;

    import javax.jms.JMSException;
    import javax.jms.QueueSender;
    import javax.jms.TextMessage;
    import javax.naming.Context;

    public class QueueSupplier extends QueueBase {
        
    private QueueSender queueSender;

        
    public QueueSupplier(Context context) {
            
    super(context);

            
    try {
                queueSender 
    = queueSession.createSender(queue);
            }
     catch (Exception ex) {
                ex.printStackTrace();
            }

        }


        
    public void sendMsg(String msg) throws JMSException {
            TextMessage txtMsg 
    = queueSession.createTextMessage();
            txtMsg.setText(msg);

            queueConnection.start();
            queueSender.send(txtMsg);
        }


        
    public void close() throws JMSException {
            queueSender.close();
            queueSession.close();
            queueConnection.close();
        }


        
    public static void main(String[] args) {
            Context context 
    = Props.getInitialContext();
            QueueSupplier queueSupplier 
    = new QueueSupplier(context);

            
    try {
                queueSupplier.sendMsg(
    "Hello World");

                System.out.println(
    "A message have been sent!");
            }
     catch (JMSException ex) {
                ex.printStackTrace();
            }
     finally {
                
    try {
                    queueSupplier.close();
                }
     catch (JMSException ex) {
                    ex.printStackTrace();
                }

            }

        }

    }

    五.屬性文件(jmsSetting.properties)
    #jndi factory
    jndi.factory
    =weblogic.jndi.WLInitialContextFactory

    #jndi provider url
    jndi.provider.url
    =t3://127.0.0.1:7001/

    #jms factory
    jms.factory
    =MyJMSConnectionFactory

    #queue name
    queue.name
    =MyJMSQueue

    程序下載:
    http://www.tkk7.com/Files/sitinspring/WeblogicStandardJMS20070910105334.rar

    posted on 2008-02-22 12:18 和風細雨 閱讀(760) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 国产在线观看免费不卡| 亚洲一级黄色大片| 国产视频精品免费| 日韩免费人妻AV无码专区蜜桃| 亚洲爆乳成av人在线视菜奈实| 久久久久久a亚洲欧洲AV| 国产午夜鲁丝片AV无码免费| 亚洲一区二区免费视频| 好猛好深好爽好硬免费视频| 在线播放亚洲精品| 亚洲AV无码精品蜜桃| 亚洲精品线在线观看| 国产亚洲av片在线观看18女人| 思思99re66在线精品免费观看| 97在线视频免费公开观看| 两个人的视频www免费| 婷婷国产偷v国产偷v亚洲| 亚洲www77777| 亚洲国产成人精品无码一区二区| 亚洲美女又黄又爽在线观看| 亚洲高清免费视频| 一本久到久久亚洲综合| 国产男女猛烈无遮挡免费视频网站| 成人毛片免费观看| 最近最新的免费中文字幕| 久久受www免费人成_看片中文| 99久久久国产精品免费牛牛| 在线涩涩免费观看国产精品| 三级网站在线免费观看| jyzzjyzz国产免费观看| 一级做a爱片特黄在线观看免费看| 黄色免费在线网址| 免费精品久久久久久中文字幕| 国产精品自拍亚洲| 美景之屋4在线未删减免费| 国产精品亚洲综合| 美女被免费网站在线视频免费 | 亚洲精品黄色视频在线观看免费资源| 亚洲AV永久无码精品放毛片| 亚洲精品无码中文久久字幕| 亚洲精品天堂成人片AV在线播放|