OC4J下的EJB 2.0 MDB的部署和运行

本文档详细介绍了MDBSample项目的搭建步骤,包括所需环境配置、目录结构解析、打包与部署流程等。此外,还提供了如何更改JMS配置及实现JMS回滚的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MDB Sample搭建和运行手册

蒋彪@南京 2010-8-23

1. MDB的运行环境

运行环境

Oc4j

JDK

JDK 1.3以上

编译环境

ANT 1.4

示例程序地址

www.oracle.com/technetwork/middleware/ias/how-to-ejb-mdb-128132.zip

2. MDB Sample的目录结构

src

ejb

mdb

MessageLogger.java

MDB代码

web

logmessageform.htm

提交数据

logmessage.jsp

将数据封装成MessageJMS发送

etc

application.xml

标准的J2EE 描述文件

ejb-jar.xml

标准的Ejb描述文件

Web.xml

标准的Web描述文件

orion-ejb-jar.xml

OC4J特有的EJB描述文件

Bulid.xml

编译打包的Ant 脚本

Common.xml

编译打包时所需要的一些资源

3. MDB Sample的打包

首先在系统PATH中设置,OC4J_HOME.

其次,打开bulid.xml,如下将用户名和密码修改成自己本地的配置

<!-- Make sure these are correct for your instance -->

<property name="deploy.ormi" value="ormi://localhost" />

<property name="deploy.username" value="oc4jadmin" />

<property name="deploy.password" value="admin" />

然后在Sample的目录下,如下执行Ant

打包成功之后,能在lib文件夹下面找到如下文件

< messagelogger.ear>

4. MDB Sample的部署

4.1 修改OC4J JMS配置

如下,在{OC4J_HOME}/ jms.xml 中添加本MDB所属的配置文件

<topic name="Demo Topic" location="jms/theTopic">

<description>A dummy topic</description>

</topic>

<topic-connection-factory name="Demo Topic Connection Factory"

location="jms/theTopicConnectionFactory">

<description>A dummy topic connection factory</description>

</topic-connection-factory>

4.2 MDB Sample的目录下执行如下CMD

<前提是OC4J启动成功>

ant deploy-usingadmin.jar

4.3 修改{OC4J}/j2ee/home/config/default-web-site.xml(看版本而定)

在该文件中,添加如下一行

<web-app application="messagelogger" name="messagelogger-web" root="/messagelogger" />

4.5 如下所示,访问部署成功的页面

http://localhost:8888/messagelogger/

5. MDB SampleEAR包的加载顺序

ear包中读取application.xml文件,了解module组件的定义

|

ejb.jar包中首先读取 ejb-jar.xml,了解MDB的声明和JMS的类型定义

|

ejb.jar包中读取orion-ejb-jar.xml,连接jms.xml中的具体的jms-connection-factory的定义

|

编译EJB代码,初始化EJB代码

#以上#

补充一:如何把JMSTopic换成Quene

我实验了一把,先改OC4J下面的JMS.xml里的Topic换成Quene,然后把ejb-jar.xmlorion-ejb-jar.xml里面的Topic换成Quene就可以了。代码层次什么都不需要改

补充二:如何实现JMS的回滚

如果MDB接受失败,就可以回滚对JMS的接受,让发送者再次发送,代码改写如下:

public void onMessage(Message msg)

{

Try{

}

catch(Exception e)

{

context.setRollbackOnly();

}

}

上面的context就是MessageDrivenContext

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值