<%@ page contentType="text/html; charset=gb2312"%> JMS消息类型
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
JMS消息类型
     发布者: 发布时间:2007-11-26
在JMS1.1规范中规定了5种JMS消息类型,这篇文章给出如何创建和解包每种消息类型的片段代码。1.创建一个TextMessage这个例子里,股票报价信息被发送成一个TextMessage类型的消息,消息中搭载了一个可以被客户端读取的字符串数据,下面的代码示范了如何去创建一个这样的消息:
String stockData; /* 股票信息是一个字符串 */TextMessage message;message = session.createTextMessage();/* 设置股票信息到消息体 */message.setText(stockData);
2.解包一个TextMessage去解包一个TextMessage类型的消息,客户端可以使用Message.getText方法:
String stockInfo;stockInfo = message.getText();
3.创建一个BytesMessage股票信息可能是一个服务器端知道如何去构建、客户端知道如何去解释的二进制格式的股票报价,象这样的消息可以这样被构造:
byte[] stockData; /* 股票信息是一个字节数组 */BytesMessage message;message = session.createBytesMessage();message.writeBytes(stockData);
4.解包一个BytesMessage当接收到一个ByteMessage时,可以使用下面的方式来解包:
byte[] stockInfo;int length;length = message.readBytes(stockData);
消息体被拷贝到字节数组,客户端程序可以读取这个树组来解释数据。5.创建一个MapMessage每种股票信息可能会包括多种(name/value)成对出现的map,可以使用MapMessage,例如它包括下面的信息:• 股票名 - a String• 当前值 - a double• 时间 - a long• 最后更改 - a double• 股票信息 - a String去构造这个MapMessage,客户端可以使用MapMessage的各种set方法(setString, setLong, and so forth)去关联相关信息。
String stockName; /* 股票名 */double stockValue; /* 当前值 */long stockTime; /* 时间 */double stockDiff; /* 最后更改*/String stockInfo; /* 股票信息 */MapMessage message;message = session.createMapMessage();...其他代码message.setString("Name", "CN-JAVA");message.setDouble("Value", stockValue);message.setLong("Time", stockTime);message.setDouble("Diff", stockDiff);message.setString("Info", "Recent server announcement causes marketinterest");
6.解包一个MapMessage去解包一个MapMessage,客户端程序可以使用MapMessage的各种get方法来得到MapMessage元素名对应的值,下面给出了这一个示例:
String stockName; /* 股票名 */double stockValue; /* 当前值 */long stockTime; /* 时间 */double stockDiff; /* 最后更改*/String stockInfo; /* 股票信息 */stockName = message.getString("Name");stockDiff = message.getDouble("Diff");stockValue = message.getDouble("Value");stockTime = message.getLong("Time");
如果你想得到整个元素的列表,可以使用MapMessage.getMapNames方法来获得。7.创建一个StreamMessage和MapMessage相似,一个应用程序可以按序列发送多个字段到一个消息中,这些字段都是原始类型的,要做这些,你可以使用一个StreamMessage,在这里可以将java原始类型分配给股票报价信息的每一个条目中:• 股票名 - a String• 当前值 - a double• 时间 - a long• 最后更改 - a double• 股票信息 - a String
String stockName; /* 股票名 */double stockValue; /* 当前值 */long stockTime; /* 时间 */double stockDiff; /* 最后更改*/String stockInfo; /* 股票信息 */StreamMessage message;message = session.createStreamMessage();
下面的元素将被按顺序写到StreamMessage,注意他们没有象在MapMessage中的命名
message.writeString(stockName);message.writeDouble(stockValue);message.writeLong(stockTime);message.writeDouble(stockDiff);message.writeString(stockInfo);
8.解包一个StreamMessageStreamMessage中的元素必须按照被写入的顺序读出:
String stockName; /* 股票名 */double stockValue; /* 当前值 */long stockTime; /* 时间 */double stockDiff; /* 最后更改*/String stockInfo; /* 股票信息 */stockName = message.readString();stockValue = message.readDouble();stockTime = message.readLong();stockDiff = message.readDouble();stockInfo = message.readString();
9.创建一个ObjectMessage被发送出的股票的信息可能来源于一个指定的StockObject Java对象,这个对象可以在一个ObjectMessage里作为消息体被发出。ObjectMessage被用来发送Java对象。这些值的设置方法由StockObject执行。例如,StockObject可以有一些设置各种数据值的方法,一个使用StockObject的应用看起来象这样:
String stockName; /* 股票名 */double stockValue; /* 当前值 */long stockTime; /* 时间 */double stockDiff; /* 最后更改*/String stockInfo; /* 股票信息 */StockObject stockObject = new StockObject();stockObject.setName(stockName);stockObject.setValue(stockValue);stockObject.setTime(stockTime);stockObject.setDiff(stockDiff);stockObject.setInfo(stockInfo);ObjectMessage message;message = session.createObjectMessage();message.setObject(stockObject);
10.解包ObjectMessage去解包ObjectMessage,使用ObjectMessage.getObject得到对象,一但对象被取出来,客户端程序使用Java造型语句将对象还原成原始对象。
StockObject stockObject;stockObject = (StockObject)message.getObject();String stockName; /* 股票名 */double stockValue; /* 当前值 */long stockTime; /* 时间 */double stockDiff; /* 最后更改*/String stockInfo; /* 股票信息 */stockName = stockObject.getName();stockValue = stockObject.getValue();stockTime = stockObject.getTime();stockDiff = stockObject.getDiff();stockInfo = stockObject.getInfo();
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
Weblogic整合方法
EnterpriseJavaBean的结构优点的探讨
JBuilder7与Weblogic7整和开发培训手册
网络开发应用JAVA EJB开发中间件(weblogic+oracle+ejb)
JAVA中jar文件的编写和应用
J2EE 组件开发:什么是消息驱动的EJB
 
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号