<strong>第四部:为mdb(messagedrivebeans)定义部署描述符(<tt>ejb-jar.xml</tt>)<br></strong> 在部署的时候,我们要告诉容器(这里使用的是weblogic)有关mdb的信息。使用标注的ejb部署描述符来安装mdbs.因此,我们需要创建一个名为meta-inf的文件夹来放置这些部署文件。<br><br clear=all><!-- me --><b>meta-inf\ejb-jar.xml</b><br><font size=3> 在ejb-jar文件中,我们描述mdb类的名称,bean类的地址类型,和安全信息等。下面是这个文件;注意类名称和jms地址类型(</font><code><font size=4><destination-type>标记的内容根据<jms-destination-type>中描述的特定的创建者而改变。如果你使用的是bea weblogic6.0sp1你需要使用到<jms-destination-type>描述</font></code><font size=3>)</font> <code><font color=#0000ff><ejb-jar><enterprise-beans><message-driven><ejb-name>
<p><code><ejb-jar><br></p>
<p><code><font face=新宋体><ejb-jar><br> <enterprise-beans><br> <message-driven><br> <ejb-name>emailmdb</ejb-name><br> <ejb-class>com.customware.ejb.emailmdb</ejb-class><br> <transaction-type>container</transaction-type><br> <message-driven-destination><br> <destination-type>javax.jms.queue</destination-type><br> </message-driven-destination><br> <security-identity><br> <run-as-specified-identity><br> <role-name>system</role-name><br> </run-as-specified-identity><br> </security-identity><br> </message-driven><br> </enterprise-beans><br></ejb-jar></font></code></p></code>
<p></role-name><br></run-as-specified-identity></security-identity></message-driven></enterprise-beans></ejb-jar></font></code></p>
<p> 我们在那里告诉容器队列的名称呢?这要放到厂商特定的文件中。比如,如果你部署在bea weblogic 6.0上你需要一个<code>weblogic-ejb-jar.xml文件,这个文件应该是这样的:</code></p>
<p><br><b>meta-inf\weblogic-ejb-jar.xml</b></p><code>
<p><code><weblogic-ejb-jar><br></p>
<p><code><font face=新宋体><weblogic-ejb-jar><br> <weblogic-enterprise-bean><br> <ejb-name>emailmdb</ejb-name><br> <message-driven-descriptor><br> <pool><br> <max-beans-in-free-pool>200</max-beans-in-free-pool><br> <initial-beans-in-free-pool>5</initial-beans-in-free-pool><br> </pool><br> <destination-jndi-name>emailqueue</destination-jndi-name><br> </message-driven-descriptor><br> <jndi-name>jms/emailmdb</jndi-name><br> </weblogic-enterprise-bean><br></weblogic-ejb-jar></font></code></p></code>
<p><font color=#0000ff></weblogic-enterprise-bean></weblogic-ejb-jar></font></code><code><<font size=3>ejb-name><font color=#000000>描述的名称对应你在</font>ejb-jar.xml<font color=#000000>中定义的bean名称。然后我们可以定义pool(池)信息。在这个例子中我们将拥有最少5个最多200个mdbs实例。这将允许我们有200个并发的消息发送到队列中。</font><destination-jndi-name><font color=#000000>描述的内容告诉容器我们将使用emailqueue查找目的地址。因为我们并没有把它写道代码中,所以如果jms环境发生变化,我们只需要修改部署描述文件,然后重新部署就可以了。</font></font></code></p>
<p>第五步:打包代码:</p>
<p>现在我们完成了代码和部署描述文件,我们需要把它们打包然后部署到ejb服务器上。这些文件的目录结构大概的样子如下图所示:</p><img height=107 alt="directory structure diagram." src="http://www.matrix.org.cn/upload/article/a2003114100629.gif" width=146 border=0>
<table cellspacing=12 cellpadding=6 width=170 align=right border=0>
<tbody>
<tr>
<td valign=top width=170 bgcolor=#efefef>
<p class=headline>例子文件</p>
<p class=smalltext><a href="http://www.onjava.com/onjava/2001/05/22/examples/ejb_msg.zip">下载本文的例子.</a></p></td></tr></tbody></table>
<p><br> 其中的client,ejb和util目录中应该使编译过的class文件;比如:<code>/client/emailclient.class</code>, <code>../ejb/emailmdb.class</code>, 和 <code>../util/emailhelper.class</code>.现在我们通过部署描述符来打包代码:<code>../code% jar cvf emailmdb.jar com meta-inf<br>现在我们有了一个email mdb的jar文件,我们把它部署到ejb服务器上。为了测试,在部署完bean之后,运行client你应该看到ejb服务器发送了一个email.要是这一切运行正常你需要确保javamail api mail.jar包含在ejb服务器的classpath中。</code></p>
<p><br><strong>结论</strong></p>
<p> 我们已经创建了一个消息驱动bean,你可以看到在jms中他作为一个消费者是多么的简单。消息驱动bean对于ejb组件结构是一个很好的补充,他为开发人员提供了一个方法来创建消费者使它集合化,支持事务处理并且使用了容器的架构。</p>
<p><b>译者语</b>:<br> 如果你使用的是weblogic 光有上面的代码是不够的,你好要设置一个<code><font size=4>destination.具体在weblogic 的console中的jms中设置.如果有什么不明白的地方请与我联系:</font></code><code><font size=4><a href="mailto:mail:wafd2003@yahoo.com.cn">mail:wafd2003@yahoo.com.cn</a> </font></code>qq:282099538 (请注明你是来自matrix :-))</p>
<p>原文:<a href="http://www.onjava.com/pub/a/onjava/2001/05/22/ejb_msg.html?page=1">http://www.onjava.com/pub/a/onjava/2001/05/22/ejb_msg.html?page=1</a></p>
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器