`

Sender/receiver 消息

    博客分类:
  • JMS
阅读更多

Sender
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Hashtable;
import javax.jms.Queue;

import javax.jms.QueueConnection;

import javax.jms.QueueConnectionFactory;

import javax.jms.QueueSender;

import javax.jms.QueueSession;

import javax.jms.Session;

import javax.jms.TextMessage;

import javax.naming.Context;

import javax.naming.InitialContext;

/**
* @author Administrator
* @version 1.0
* @date 2008-8-30
* @class_displayName Sender
*/

public class Sender {

public void send() {

   BufferedReader reader = new BufferedReader(new InputStreamReader(
     System.in));

   String icf = "weblogic.jndi.WLInitialContextFactory";

   String url = "t3://192.168.20.36:7001";

   //              Initialise JNDI properties

   Hashtable env = new Hashtable();

   env.put(Context.INITIAL_CONTEXT_FACTORY, icf);

   env.put(Context.PROVIDER_URL, url);

   try {

    //Lookup

    final InitialContext initContext = new InitialContext(env);

    QueueConnectionFactory factory = (QueueConnectionFactory) initContext
      .lookup("SAS_factory");

    Queue destination = (Queue) initContext.lookup("SAS_Queue");

    initContext.close();

    //Create JMS Object

    QueueConnection connection = factory.createQueueConnection();

    QueueSession session = connection.createQueueSession(false,
      Session.AUTO_ACKNOWLEDGE);

    QueueSender sender = session.createSender(destination);

    //Send Message

    String messageText = null;

    while (true) {

     System.out.println("Enter message to send or 'quit':");

     messageText = reader.readLine();

     if ("quit".equals(messageText))

      break;

     TextMessage message = session.createTextMessage(messageText);

     sender.send(message);

    }

    //Exit

    System.out.println("Exiting...");

    reader.close();

    connection.close();

    System.out.println("Goodbye!");

   } catch (Exception e) {

    e.printStackTrace();

    System.exit(1);

   }

}

public static void main(String[] args) {

   (new Sender()).send();

}

}

Receiver

import java.util.Hashtable;

 

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageListener;

import javax.jms.Queue;

import javax.jms.QueueConnection;

import javax.jms.QueueConnectionFactory;

import javax.jms.QueueReceiver;

import javax.jms.QueueSession;

import javax.jms.Session;

import javax.jms.TextMessage;

import javax.naming.Context;

import javax.naming.InitialContext;

 

public class Receiver implements MessageListener{

     

      private boolean stop = false;

      public static void main(String[] args) {

             (new Receiver()).receive();

      }

     

      public void receive() {

             String icf = "weblogic.jndi.WLInitialContextFactory";

             String url="t3://192.168.20.36:7001";

                                                

//           Initialise JNDI properties

             Hashtable env = new Hashtable();

             env.put( Context.INITIAL_CONTEXT_FACTORY, icf );

             env.put( Context.PROVIDER_URL, url );

 

             try{

                    //Look up administratered objects

                    final InitialContext initContext = new InitialContext(env);

                    QueueConnectionFactory factory = (QueueConnectionFactory) initContext.lookup("SAS_factory");

                    Queue destination = (Queue) initContext.lookup("SAS_Queue");

                    initContext.close();

                   

                    //Create JMS objects

                    QueueConnection connection = factory.createQueueConnection();

                    QueueSession session = connection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);

                   

                    QueueReceiver receiver= session.createReceiver(destination);

                    receiver.setMessageListener(this);

                    connection.start();

                    System.out.println("服务启动");

                    //Wait for stop

                    while(!stop){

                           Thread.sleep(1000);

                    }

                   

                    //Exit

                    System.out.println("Exiting...");

                    connection.close();

                    System.out.println("Goodbye!");

                   

             }catch(Exception e){           

                    e.printStackTrace();

                    System.exit(1);

             }

      }

     

      public void onMessage(Message message) {

             try {

                    String msgText = ((TextMessage)message).getText();

                    System.out.println("接受到的消息是:"+msgText);

                    if("stop".equals(msgText)){

                           stop = true;

                    }

             } catch (JMSException e) {

                    e.printStackTrace();

                    stop = true;

             }

            

      }

 

}

分享到:
评论

相关推荐

    Sender-receiver 消息

    【Sender/Receiver 消息】在Java消息服务(JMS)中,Sender和Receiver是两个基本的概念,它们分别代表消息的生产者和消费者。Sender负责创建并发送消息,而Receiver则负责接收和处理这些消息。在JMS中,消息传递是...

    A Simple SMS sender/receiver API-开源

    基本上,J2SE 1.4+的API可以通过COM端口与连接到您的计算机的GSM调制解调器对话。 它可以使用GSM调制解调器蓝牙或红外发送和接收文本SMS。但是,此API需要Java Communication API

    TCP/IP sender and receiver and "TCP ping" application

    TCP/IP sender and receiver and "TCP ping" application

    AUTOSAR架构简述.pdf

    - **端口(Ports)**:端口是SWC之间通信的接口,分为Sender/Receiver和Client/Server两种类型。Sender/Receiver端口用于数据传输,Client/Server端口则用于提供Operation服务。 - **可运行实体(Runnables)**:...

    Android应用:Broadcast的Sender和Receiver

    工程1:Broadcast的Sender,负责发送广播 工程2:Broadcast的Receiver,负责监听广播(2种注册方式:XML和代码动态注册),一旦监听到广播,弹出Activity,并显示广播携带的数据。 本代码含金量很高哦,简单而直观...

    udp sender and receiver_UDP_plenty61q_

    在"udp sender and receiver"这个项目中,我们将探讨如何使用UDP协议在本地进行消息的发送和接收。 1. **UDP协议基本概念**: - **无连接性**:UDP在发送数据前无需建立连接,这使得它的开销较小,但同时也意味着...

    VC 演示EXE程序通信的发送和接收消息机制.rar

    VC 演示EXE程序通信基于消息机制,要同时编译运行两个子程序,在Sender端发送消息,在Receiver端接收sender端发送的消息,截图是sender端的运行效果。其中发送消息有三种方法,请看以下代码:  //发送消息命令一  ...

    SNMP-Sender-Receiver:使用 SNMP GET 方法的简单示例

    在这个“SNMP-Sender-Receiver”项目中,我们将探讨如何使用SNMP GET方法从网络设备获取信息。这个项目主要基于Java编程语言实现,因此,对于Java开发者来说,这将是一个很好的学习SNMP操作的机会。 首先,我们需要...

    自定义消息机制

    void SendMessage(void* sender, void* receiver, MyMessage::MessageType msgType) { // 创建消息结构体 MyMessage* msg = new MyMessage(); msg->msgType = msgType; msg->sender = sender; msg->receiver =...

    SAP PI HTTP Receiver Adapter Configuration.doc

    SAP Process Integration (SAP PI) 是一个用于企业内部以及与外部合作伙伴之间进行消息交换的集成平台。其中,HTTP Receiver Adapter 是一种用于接收HTTP请求的重要组件。本文将详细介绍通过HTTP Receiver Adapter ...

    Windows Receiver 客户端

    在本文中,我们将深入探讨Windows Receiver的功能、工作原理以及与"mirrorop sender电脑传屏端客户端"的关系。 ### Windows Receiver 功能 1. **远程桌面接入**:Windows Receiver 提供了一种安全的途径,让用户...

    workshop-cast-maze

    车间铸造迷宫资产如何接收者浏览 http://xebia-france.github.io/workshop-cast-maze/receiver/在 Chrome 商店中部署$ npm install$ grunt dist$ grunt gh-pages发件人Javascript 根文件夹 sender/js启动 NodeJS $ ...

    Simple-SMS-Sender-Receiver:用于发送和接收短信的简单安卓应用

    简单-短信-发送者-接收者 用于发送和接收短信的简单安卓应用 这是一个基本的 android 应用程序,它允许您向(当前硬编码的)电话号码发送 SMS 消息,并且接收到的消息显示在 textView 中。

    QT 不同文件直接变量调用 示例

    在这个例子中,`Sender`对象发送一个`valueChanged`信号,`Receiver`对象通过连接这个信号到自己的`handleValueChanged`槽函数,实现了跨对象的通信。 **注意事项:** - 全局变量的使用应谨慎,过多的全局变量可能...

    企业服务平台技术规范

    <sender> 发件人姓名</name> <postCode>526238</postCode> <phone>021-12345678</phone> <mobile>18112345678</mobile> 上海</prov> 上海市,青浦区</city> 华徐公路3029弄28号</address> </sender> ...

    Autosar_TransGG.zip_Windows编程_C/C++_

    A transformer provides well defined function signatures per each communication relation(port based and signal based)signature depends ...Server operation signatureor Sender/Receiver interface signature)...

    对话框之间传递消息,实例在VS2005下测试通过

    在VC++的MFC框架中,我们可以创建两个对话框类:一个是发送消息的对话框(Sender Dialog),另一个是接收消息的对话框(Receiver Dialog)。为了实现消息传递,通常需要以下几个步骤: 1. **定义自定义消息**:在...

    RFM2g_Sender.rar_rfm api_rfm2g_rfm2g_receiver_rmf2g控件_rockneu

    标签中的"rfm2g_receiver"指出可能还存在一个对应的接收程序,用于接收RFM2G模块发送的数据。"rmf2g控件"可能是指在图形用户界面(GUI)中使用的组件,使得用户可以通过图形化方式操作RFM2G模块,如设置参数、查看接收...

    QT中使用回调函数(二)

    例如,`connect(sender, &Sender::signalName, receiver, &Receiver::slotName)`,这表示当`sender`发出`signalName`信号时,`receiver`的`slotName`槽会被调用。 3. **不同类型的连接方式**: - **直接连接**:...

Global site tag (gtag.js) - Google Analytics