J2EE技术(三)——JMS

 一、JMS基本思想

JMS(Java Message Service)即java消息服务,提供了一组标准的java API,用于企业级的消息处理。通过JMS可以在java程序之间发送和接受消息以达到交换数据的目的。

一个JMS应用由以下几部分组成:

1、       消息发送者(消息生产者):消息发送者是指消息的创建者和发送者,是消息的发源地。

2、       JMS提供者:是指实现JMS API接口的消息系统,是消息的中转站。JMS定义了Java中访问消息中间件的接口,但JMS只是接口,并没有给予实现,实现JMS接口的消息中间件称为JMS提供者(JMS Provider)。WebLogic Server内嵌了消息中间件的功能,所以WebLogic Server就充当了JMS提供者的角色。

3、       消息接受者(消息消费者):消息接受者是指接受消息的应用程序,是消息的最终的目的地。

4、       管理对象:管理对象是预定义的JMS对象,客户端使用这些预定义的对象进行通信,例如JMS连接工厂。

二、JMS通信机制

1、点到点通信(PTP)模式

JMS把每一个消息传递给一个消息消费者,并只有唯一的一个,即一个消息生产者对应一个消息消费者。

2、发布/订阅(Publish/Subscribe,Pub/Sub)模式

一个消息生产者对应多个消息消费者。

 

可以在一个应用中同时使用这两种消息传递方式。

三、JMS概念的一些简洁定义

连接工厂(ConnectionFactory):客户端用来创建连接的管理对象。

连接(Connection):代表一个与JMS提供者的活动连接。

目的(Destination):标识消息的接收方式。分为队列(Queue)和主题(Topic)两种。

会话(Session):接收和发送消息的会话线程。

消息生产者(MessageProducer):会话使用它把消息发送到目的地。

消息消费者(MessageConsumer):会话使用它从目的地接受消息生产者发送的消息。

四、JMS消息发送及接收的过程:
1、发送消息过程:

(1)、使用JNDI查询管理对象ConnectionFactory和Destination。

(2)、使用管理对象ConnectionFactory建立连接Connection。

(3)、使用连接Connection建立会话Session。

(4)、使用会话Session和管理对象Destination创建消息生产者MessageProducer。

(5)、使用消息生产者MessageProducer发送消息。

2、接受消息的客户端使用JMS的过程:

(1)、使用JNDI查询管理对象ConnectionFactory和Destination。

(2)、使用管理对象ConnectionFactory建立连接Connection。

(3)、使用连接Connection建立会话Session。

(4)、使用会话Session和管理对象Destination创建消息消费者MessageConsumer。

(5)、使用消息消费者MessageConsumer接收消息。

五、JMS消息类型

(1)、StreamMessage:消息由串行化的Java对象组成,必须按照设置时的顺序读取对象。

(2)、MapMessage:消息由名称/值对组成,其中名称为字符串类型,值为Java数据类型。可以使用列举顺序读取该消息的值,也可以通过名称无序地获取值。

(3)、TextMessage:消息的主体为字符串(),这是最常用的消息类型。

(4)、ObjectMessage:消息的主体为串行化的Java对象,可以是自己定义的串行化的Java对象。

(5)、BytesMessage:消息的主体是二进制数据。

Weblogic.jms.extensions.XMLMessage 是WebLogic实现的JMS提供者提供的扩展的消息类型,提供更便利的操纵XML内容的方式。

 

 

 

转载于:https://www.cnblogs.com/CharmingDang/archive/2011/12/20/9663968.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssh-keygen -t rsa执行后提示没有权限

ssh-keygen -t rsa生成密钥文件和私钥文件 产生原因:ssh-keygen命令不是被识别的内部或者外部命令,没有权限 解决方案:把这个命令加入到全局变量内,再执行,就OK了 1.找到git安装目录下ssh-keygen地址: 2.把…

windows安全警报怎么关闭_鄂州人注意!本周五上午,全市将进行防空警报鸣放...

根据《人民防空法》规定,经鄂州市政府批准,于2020年10月23日上午9时10分进行防空警报鸣放,届时请市民不要惊慌,保持正常的工作和生活秩序。■延伸若是战时防空警报响起,市民该怎么做?如今是和平年代&#x…

Visual Studio 添加 自定义 路径宏

在编辑VS工程包含路径和库路径时,有时需要添加第三方包的路径,比如c boost库, 为了协作的方便,不合适直接把本地绝对路径添加入工程设置,此时可以添加自定义路径宏, 然后参与协作的每个开发人员&#xff0c…

openwrt 19 overlay 空间不足_重视 | 山西一矿井瓦斯爆炸,有限空间作业切记注意安全...

新闻速递20日2时许,山西潞安集团左权阜生煤业井下发生一起瓦斯爆炸事故,造成4人遇难、1人受伤。目前事故救援基本结束,事故原因正在调查中。近年来有限空间作业事故频发2010年6月21日凌晨1时40分左右,平顶山市卫东区兴东二矿发生井…

扩展极小值—lhMorpEMin

扩展极小值(5*5正方形 h100 显示结果二值化) 函数:lhMorpEMin 说明:形态学扩展极小值 参数: src 输入图像 dst 输出图像 h 深度或动态范围阈值 se 结构元素 源码: void lhMorpEMin(const IplImage* src…

c++win32项目 如何显示后再删除一个绘图_CAD快速绘图,不可不知的50个经典技巧,看完不迷茫!...

1、文字镜像如何设置转动与不转动?A、在镜像前,输入MIRRTEXT指令B、输入新值0 代表不转动 ;输入新值1代表转动C、MIRRTEXT指令完成后,输入MI镜像指令就OK了2、CAD的版本转换?A、CAD高版本可以打开所有低版本的图纸B、C…

PHP添加php-java-brideg模块(ubuntu环境)

1、下载php-java-bridge 下载地址:https://sourceforge.net/projects/php-java-bridge/files/Binary%20package/php-java-bridge_7.2.1/exploded/JavaBridge.jar/download 2、将JavaBridge.jar上传到linux服务器中。例如/usr/local/src/ 3、修改php.ini文件。用find…

YSlow简介与使用(转)

原文:http://www.huluboke.com/firebug-yslow/ 除了Firebug自带的网络监控功能以外,还有很多Firebug监控插件提供更为详细的监控信息报告,在此介绍其中的佼佼者,YSlow。YSlow的下载地址为:http://developer.yahoo.com/…

安卓手机阅读器_乐应用|安卓手机本地阅读的不二之选

现在属于个人的时间越来越碎片化,因此为了方便,很多人选择在手机上阅读书籍。不同的人,有不同的阅读喜好,所以合适的阅读软件没有最好,只有更好。比如有人喜欢追网络小说,应用中集成在线书库就比较重要&…

莫兰迪色rgb颜色表_企业风险评价,(SCL)安全检查表,Excel工作表

说实在的,在很多中小企业里,风险评价在企业运行过程中,还是一项比较概念化的工作,明确地说就是不被重视,似乎有没有都无所谓。初次接触风险评价,感觉十分陌生,不知道从何入手,什么都…

输入参数的数目不足 matlab_哈工大被禁用MATLAB,工科学生慌了,论文至上间接导致软件依赖?...

“与其让毕业生天天愁毕业论文的重复率,不如踏踏实实地搞点创新。”文 | 木兔 编辑 | 小豆6月6日起,陆续有哈尔滨工业大学(以下简称哈工大)的学生在知乎等社交网络上反映,MATLAB软件突然不能用了,明明学校已经购买了全套正版软件&…

three.js两个点给线条加宽度_一台电视两个房间看?衣柜、客房会隐形?这是什么神奇设计!...

今天介绍的家是一对小夫妻的新房,改造前的问题基本都是常见的槽点:进门过道细窄昏暗;厨卫小而局促;卧室和阳台被分成了4个小隔间,像群租的隔断房。1玄关利用镜面反射,空间视觉扩大一倍。进门的视角&#xf…

论文中要用到的SPSS基础分析

大家现在都要写论文的数据分析了……很多同学都一点不会……所以把我知道的跟大家分享一下……下面以PASW18.0为例,也就是SPSS18.0…………什么?不是18.0,好吧……差不多的,凑合着看吧……要不去装个…… ……下面图片看不清的请右…

AutoMapper 9.0的改造

AutoMapper于2019.8.12升级9.0 从此不再支持静态的对象转换 自己琢磨了一下,写了一套扩展 官方链接如下 https://github.com/AutoMapper/AutoMapper/tree/v9.0.0 我做了一下方便使用的简单封装 public static class AutoMapperExtension{public static IServiceColl…

win10电脑插耳机没声音_电脑没有声音是什么原因 教您电脑突然没声音怎么解决...

在日常生活中在使用电脑中经常遇到电脑没声音的小麻烦,有时候选择重装系统也解决不了该问题,其实不必烦恼的,当出现电脑没声音的现象时,我们首先要寻找出电脑没声音是什么原因造成的。然后根据电脑没声音的原因来寻求解决办法。下…

机械动作时序图怎么画_人物动作怎么画?动漫绘画人物姿势的基本画法!

人物动作怎么画?怎样才能画好动漫人物姿势?画好动漫人物姿势有哪些技巧?想必这些问题都是绘画初学者们比较伤脑筋的问题,那么到底怎样才能画好动漫人物姿势呢?今天就在网络上收集整理了关于人物动作怎么画?…

vCenter线上操作磁盘扩容

以下截图是生产机器,目前是有一块盘,且根分区是/dev/sda3,因为磁盘不足,需要备份的数据要远远超过此时的空间大小;正常情况下,是可以新增硬盘硬盘作为备份 但是作为宿主机下的虚机,因为一些不规…

邮箱无权访问 上的 jira是怎么回事_蚂蚁庄园答案2020年11月6日汇总 小鸡宝宝考考你每日答案为你呈上|蚂蚁|庄园-360GAME...

川北在线核心提示:原标题: 蚂蚁庄园答案2020年11月6日汇总 小鸡宝宝考考你每日答案为你呈上 支付宝蚂蚁庄园小课堂11月6日答案是什么呢?2020年11月6日支付宝蚂蚁庄园小课堂题目是健身过后什么时候吃饭更适宜?等等相信有不少用户都…

bmp怎么编辑底色_非标机械设计这个行业前景怎么样

今天就不分享技术点了,主要和大家谈谈非标机械设计这个行业的前景怎么样,非标机械设计,就是根据客户提供的样板或者提出的要求来订做设计的。相信还有很多人对这个词感到很陌生,提起来也只是大概知道它是一种什么东西,…

android 发短信 调到联系人

原文找不到了。看了别人的一些。自己加了一点。做一个代码备份。自己看就可以了。先上一下图吧。看看一效果。 通过上边选择联系人。把选择过的联系显示到EditView 中。而发送短信时。可以获取联系人的电话号码。 发短信的的类SendmessageActivity.java package com.hkrt.actio…