<%@ 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
 
最近评论:
        
鍥炲
        
那个雨天的想法!
wow gold,wow power leveling.wow power leveling,wow power leveling, max(7847)
        
那个雨天的想法!
wow gold,wow power leveling.wow power leveling,wow power leveling, max(2308)
        
如果真的有来生!
四川旅游,九寨沟旅游,稻城亚丁旅游,四姑娘山旅游,海螺沟旅游,西藏旅游, max(9243)
        
如果真的有来生!
四川旅游,九寨沟旅游,稻城亚丁旅游,四姑娘山旅游,海螺沟旅游,西藏旅游, max(5901)
        
左边的风景!
wow gold,wow power leveling.wow power leveling,wow power leveling, max(6087)
        
左边的风景!
wow gold,wow power leveling.wow power leveling,wow power leveling, max(3209)
        
轻轻走过你的窗前!
world of warcraft gold,cheap world of warcraft gold,warcraft gold,world of warcraft gold,cheap world of warcraft gold,warcraft gold max(9274)
        
快乐情人节!
wow gold,wow gold,wow gold,wow gold,wow gold,wow gold,wow gold buy wow gold for cheap. max(2444)
        
昨夜的狂想曲!
wow gold,WoW Gold,world of warcraft gold,WoW Gold, max(5466)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

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