????????? 本文將不涉及EJB3.0的設(shè)計以及編碼.
????????? 主要內(nèi)容是關(guān)于JBOSS下EJB3.0的第一個例子的配置與運行。
首先下載JBOSS4,并安裝成功。目前JBOSS提供的ejb3有2種版本,一種是Embeddable(可嵌入),一種是直接運行。這些都可以在jboss的官方網(wǎng)站獲得。
Embeddable版本的主要的好處是可以獨立運行,方便測試,甚至無需部署在jboss環(huán)境當(dāng)中,當(dāng)然這是需要它提供的conf以及l(fā)ib包里面的幾個配置來支撐的。如果是在web應(yīng)用當(dāng)中運行,還需要將jboss-EJB-3.0_Embeddable_ALPHA_8\conf 里面的配置文件引入到web-inf\classes下的。
lib包里面的3個包也需要放在web-inf\lib下面。然后對web.xml進行修改,加上:
?? <context-param>
????? <param-name>jboss-kernel-deployments</param-name>
????? <param-value>embedded-jboss-beans.xml, jboss-jms-beans.xml</param-value>
?? </context-param>
?? <listener>
????? <listener-class>org.jboss.ejb3.embedded.ServletBootstrapListener</listener-class>
?? </listener>
否則會報關(guān)于jndi方面的錯誤。
??????????前面提到的另一個版本則是需要基于JBOSS環(huán)境的完全版。它的配置相對于Embeddable來說更簡單一些。?? 實際上針對這個版本的web應(yīng)用當(dāng)中調(diào)用EJB3 是無需任何額外配置的.
然而在此之前我走了一段彎路:
比如看到網(wǎng)上一些介紹性的文章當(dāng)中提到需要將{jboss_home}\client 當(dāng)中的一些包拷到web-inf\lib的下面,然后在初始化InitialContext時需要加上java.naming.factory.initial,java.naming.factory.url.pkgs等等的參數(shù)。這樣反而會拋出CommunicationException: Receive timed out異常。實際上JBOSS都已經(jīng)將初始化環(huán)境設(shè)置好了。
以下實例是web環(huán)境下調(diào)用jboss 下ejb3的客戶端:
http://www.myjavaserver.com/~nighthawk/EJBClient.war
部署在jboss下的ejb3例子,以上2個客戶端都是調(diào)用的它:
http://www.myjavaserver.com/~nighthawk/MyEJB.jar
web環(huán)境下調(diào)用Embeddable ejb的客戶端的實例比較大,空間不夠,不往上放了。
不過配置起來也很簡單,只需將Embeddable版本當(dāng)中的conf與lib包放在war包的classed與lib下即可。
以上例子均在jboss-4.0.4.GA下測試過。
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ??2006?nighthawk.All rights reserved