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