websphere下JMS的配置和和应用
1. MDB(Message Driven Bean)介绍
1.1. 相关概念
要真正理解MDB的话,需要理解java分布式编程的基础知识。下面我把它涉及到的知识点简单介绍下:
1.1.1. RMI(Remote Method Invocation):
RMI其实就是提供客户远程调用方法的技术,对一个具体提供服务的类它生成一个存根和一个骨架,RMI客户通过保存在本地的存根调用RMI服务器上的对象,而RMI服务器则通过本地的RMI骨架与客户机上的存根沟通,传递对象。
1.1.2. EJB(Enterprise JavaBean):
EJB的概念与RMI差不多。它存在于EJB容器中。EJB也是对象,因此它也有自身的一些方法,两种:回调方法,业务方法。业务方法是EJB面向客户提供服务的接口,它由客户调用。回调方法由容器调用,容器通过对这些方法的调用实现对EJB进行如创建,删除时的一些逻辑。要编写一个EJB要实现三个部分: EJB需要创建,所以要有一个创建它的工厂;EJB可以被远程调用所以还要有一个远程接口;一个具体实现的bean,它由回调方法和业务方法组成。
1.1.3. JMS(Java Message Service):
消息的传递分为点对点(PtoP)和发布/预定(即点对群)。它跟电子邮件一样都是异步通讯的,一个消息发送到队列里面,消息消费者则从队列中获取信息。
1.1.4. JNDI(Java Naming and Directory Interface):
Java命名和目录接口,可以用来查找远程对象。
1.2. MDB的环境以及所使用的工具
Windows XP,WebSphere5.1,Eclipse3.0,Ant1.6.2,IBMJDK1.4.2。
安装WebSphere时一定要确认安装了Messaging组件:
2. WebSphere JMS的相关配置
登陆WebSphere管理平台,选中:资源---àWebSphere JMS 提供者,并选择相应节点的server
选择好server后,在属性追加栏里点:
“WebSphere 队列连接工厂”配置QueueConnectionFactory。
“WebSphere 队列目的地”配置Queue。
2.1. 新建队列工厂
进入“WebSphere 队列连接工厂”页面后,新建一个队列工厂:
输入工厂名及对应的JNDI名:
点击确定按钮并保存。
2.2. 新建队列
进入“WebSphere队列”页面后,新建一个队列:
输入队列名及对应的JNDI名:
点击确定按钮并保存。
2.3. 新建监听器
下面配置队列监听器:
选择“应用程序服务器”,再选择相应server1
进入server1的页面后,在追加属性里面选择“消息侦听器服务”
然后还是在追加属性里面选择“侦听器端口”
然后新建一个监听端口:
输入端口名及监听的队列和工厂的JNDI名,初期状态就用默认的已启动,表示server刚启动时监听端口也同时启动:
点击确定并保存。
2.4. JMS server设置
回到应用程序服务器的server1页面,在追加属性中选择“服务器组件”:
然后选择JMS 服务器:
在队列名中输入前面新建的队列名:
点击确定并保存。
至此,WebSphere上的JMS配置全部完成。下面就是应用程序的例子。
3. ear包的作成
下面用一个J2EE应用程序示例来演示一下怎么创建和使用MDB的。
这个J2EE应用包含了一个普通EJB和一个MDB,以及一个部署文件application.xml。
EJB实现了向Queue里面发送信息的功能,而信息的接受则由MDB来自动实现,并通过onMessage()方法来实现在接受消息时需要执行的动作。
3.1. ejb-jar-rcv.jar(MDB)的作成:
MDB是被打成一个jar包的,这个jar包由实现了javax.ejb.MessageDrivenBean和javax.jms.MessageListener的一个类SimpleMessageBean.java和一个EJB规范要求的XML文件ejb-jar.xml组成。
SimpleMessageBean.java
ejbCreate(),ejbRemove()分别实现了MDB在容器里被创建和删除时要执行的动作。
getMessageDrivenContext()和setMessageDrivenContext(javax.ejb.MessageDrivenContext ctx)两个方法在这里没有使用到,就不说了。
最重要的就是onMessage(javax.jms.Message msg)方法,当这个jar包作为一个消息驱动bean被部署到WebSphere上后,它与一个指定的端口关联起来,这个端口上的监听器对我们前面在WebSphere上配置的Queue进行监听,每当有消息被送到这个Queue里就触发了onMessage方法,完成我们想要执行的动作,消息驱动由此而来。在这里onMessage方法是把收到的消息作成邮件然后发送到指定地址。
ejb-jar.xml
MDB也是一个EJB,所以这个文件也少不了:
test.receive.SimpleMessageBean,对应类文件的包和类名。
3.2. ejb-jar-snd.jar(EJB)的作成:
就像前面介绍一样,EJB里面包含了一个工厂MessageSenderHome.java,一个实现MessageSenderBean.java,一个远程接口MessageSender.java,还有一个XML说明文件ejb-jar.xml
MessageSender.java
这个类只有一个方法,它提供了一个远程接口。
MessageSenderBean.java这个类实现了SessionBean接口
这个类是EJB的具体实现类,要做的事就是把一条信息发送到指定队列里去。sendMessage()就是发送消息的这个方法,它通过EJB里的远程接口被调用。
connectionFactoryName和queueName分别对应前面定义的QueueConnectionFactory和Queue的JNDI名。
message是要发送的信息。
numMessages是发送的次数。
MessageSenderHome.java工厂类只有create()一个方法,要使用EJB发送信息则必须先调用这个工厂的这个方法创建一个MessageSender的实例,然后通过实例调用实现bean的sendMessage()方法,完成发送信息到Queue的功能。
ejb-jar.xml
这里的,,三个标签分别对应前面的工厂类,远程接口和实现类。
Stateless表示它是一个无状态会话bean。
3.3. TestJMS.ear(ear)的作成
把上述两个jar包打成一个ear文件则可以作为一个J2EE应用程序发布到WebSphere上去了,不过还需要下面这个J2EE应用的部署文件,application.xml:
这个文件说明了在这个J2EE应用中有两个EJB模块。
可以使用ant将上面的所有相关文件按照下面的目录结构打成一个ear包。
至此我们可以得出一个可以发布到WebSphere上去的ear包。
4. ear包的发布
下面是把这个ear包发布到WebSphere上去的过程说明:
进入“应用程序”的“企业应用程序”页面,点击“浏览”按钮,选择要发布的ear包。
点击下一步。
下一步:
下一步:
下一步:
输入前面配置好的监听器的JNDI名,然后下一步:
这里的配置通过监听器端口将MDB与前面配置的Queue关联了起来。
输入用于查找EJB的JNDI名,下一步:
下一步:
下一步:
点击“完成”,完成配置并保存。
这个ear包发布完成后再到“企业应用程序”页面,选中发布上去的ear包的应用,点击启动。
启动成功,这个J2EE应用程序就可以使用了。
5. 测试程序
最后可以用下面的测试代码来调用EJB发送信息,并验证MDB发送邮件是否成功。
如果测试程序与我们发布的J2EE应用程序在一台机上,那就上面未注释部分的代码测试。
如果不在同一台机上,使用的上下文就应该用注释部分代码来初始化,其中"corbaloc::hostname:port"的hostname和port对应J2EE应用程序所在机器名或IP和端口,如果是默认得server1,可以不用指定端口,"corbaloc::hostname”就行了。
分享到:
相关推荐
WebSphere Application Server 6.1 是 IBM 提供的一款企业级应用服务器,支持Java Message Service (JMS) 技术,用于实现异步通信和解耦应用程序。JMS 是一种标准API,允许应用程序创建、发送、接收和读取消息。以下...
完成以上步骤后,WebSphere已经配置好了一个基本的JMS环境,可以开始编写和部署使用JMS的应用程序了。在实际应用中,可能还需要配置其他高级特性,如JMS安全、消息持久化、事务处理等。确保在开发和测试过程中,始终...
### 在IBM WebSphere 6.1中配置IBM MQ并通过JMS验证的方法 #### 一、配置概述 在本文档中,我们将详细介绍如何在IBM WebSphere 6.1中配置IBM MQ,并通过Java消息服务(JMS)进行验证的过程。IBM MQ是一种高级的...
### WebSphere安装、配置与WEB应用部署详尽指南 #### WebSphere Application Server 安装流程详解 WebSphere Application Server 的安装是一项关键任务,涉及到多个步骤,确保系统的稳定性和应用程序的高效运行。...
Linux 下安装配置 WebSphere 需要完成多个步骤,包括安装、配置数据源、变量配置、应用部署等。 二、安装 WebSphere 1. 建立文件夹:使用 mkdir 命令建立一个新的文件夹 `/usr/local/websphere`,用于存放 ...
3. **应用配置**:重启Tomcat6,使配置生效,然后应用程序可以通过JNDI查找并使用这些数据源。 在所有这些配置过程中,确保JDBC驱动版本与数据库服务器兼容,同时注意在服务器环境变量或类路径中包含驱动。配置完成...
WebSphere7.0数据源配置与应用程序发布之应用程序发布
本教程将深入探讨WebSphere的安装、配置以及WEB应用的部署过程。 一、WebSphere安装 1. 下载:首先,你需要从IBM官方网站获取适合你操作系统的WebSphere版本。这通常是一个可执行的安装文件。 2. 运行安装程序:...
Websphere集群配置是企业级应用部署的关键步骤,它涉及到多个服务器之间的协同工作,以实现高可用性、负载均衡和故障转移。以下是对Websphere集群配置和应用程序部署过程的详细解析: 首先,集群配置的基础是确保...
### WebSphere 7.0 数据源配置与应用程序安装详解 #### WebSphere 7.0 简介 WebSphere Application Server (WAS) 7.0 是一款由 IBM 开发的企业级应用服务器,用于托管 Java 应用程序。它提供了高度可扩展、可靠且...
### WebSphere数据源配置详解 #### 一、引言 在企业级应用开发与部署过程中,WebSphere作为一款成熟的企业级应用服务器,在处理高并发、高性能的应用场景时表现出了强大的能力。而数据源配置作为其核心组件之一,...
WebSphere 是 IBM 提供的一款企业级的 Java 应用服务器,用于部署和管理各种应用程序,如 Web 应用、EJB、JMS 消息队列等。在 Windows 操作系统下安装和配置 WebSphere 包含多个步骤,主要包括安装软件、安装补丁...
Websphere MQ JavaJMS 客户端的 SSL 配置 Websphere MQ Java/JMS 客户端的 SSL 配置是指从 Java/JMS 客户端到 WebSphere MQ Queue Manager 的安全套接字层(Secure Sockets Layer,SSL)连接的配置。该配置主要用于...
本文详细介绍了如何在 Windows XP 系统下使用 MyEclipse 5.5.1 来配置和部署 Websphere 6.1。通过上述步骤,开发者能够顺利地将 Java Web 应用部署到 Websphere 上,并确保其稳定运行。需要注意的是,Websphere 通常...
### WebSphere安装、配置与WEB应用部署教程精要 #### WebSphere Application Server 安装流程概览 **一、WebSphere Application Server 安装指南** WebSphere Application Server 的安装过程涉及多个步骤,从启动...
### Websphere 6.0 配置 LDAP 安全性的详细步骤及应用 #### 一、概述 本文档旨在详细介绍如何在IBM Websphere 6.0环境中配置LDAP(Lightweight Directory Access Protocol)安全性,并将该配置应用于具体项目中。...
websphere 6.1安装配置指南websphere 6.1安装配置指南websphere 6.1安装配置指南websphere 6.1安装配置指南websphere 6.1安装配置指南websphere 6.1安装配置指南
在完成 WebSphere 安装之后,默认情况下是可以以任意用户登录控制台进行服务器的各项配置,这会存在很大的安全隐患。因此,需要对其进行安全配置,以保证 WebSphere 服务器能够稳定可靠的运行。 2. 全局安全性设置 ...
在本配置文件中,我们将详细介绍如何创建密钥库和证书,并将其应用于 WebSphere 6.1 中。 在配置 SSL 之前,需要首先创建密钥库和证书。在 IHS 中,需要创建一个密钥数据库文件(IHSkey.kdb),然后生成一个自签名...
JMSServer可以配置为单独的服务器实例或与应用服务器共享。 2. **定义ConnectionFactory**:ConnectionFactory是客户端用来创建JMS连接的对象。在WebLogic中,你需要配置一个JNDI名称,使得应用可以通过这个名字...