隨筆-17  評論-64  文章-79  trackbacks-1
          HelloWorld EJB代碼編寫


            1.編寫主接口程序
            在文本編輯器中編輯HelloHome.java文件,并保存在C:\work\hello目錄下,其代碼為:
            //本接口需要引入的類或接口
            import java.rmi.RemoteException;
            import javax.ejb.CreateException;
            import javax.ejb.EJBHome;
            //定義主接口,必須繼承EJBHome
            public interface HelloHome extends EJBHome {
           ? //定義EJB創(chuàng)建方法
             Hello create() throws CreateException, RemoteException;
            }
            2.編寫遠程接口程序
            在文本編輯器中編輯Hello.java文件,并保存在C:\work\hello目錄下。Hello.java文件的代碼為:
            //本接口需要引入的類或接口
            import javax.ejb.EJBObject;
            import java.rmi.RemoteException;
          //定義遠程接口,必須繼承EJBObject
            public interface Hello extends EJBObject {
             //定義業(yè)務(wù)邏輯方法
             public String sayHello()
             throws RemoteException;
            }
          3.編寫B(tài)ean類實現(xiàn)程序
            在文件編輯器中編輯HelloBean.java文件,并保存在C:\work\hello目錄下。HellloBean.java文件的代碼為:
            //本類需要引入的類或接口
            import javax.ejb.CreateException;
            import javax.ejb.SessionBean;
            import javax.ejb.SessionContext;
            //實現(xiàn)業(yè)務(wù)邏輯,必須實現(xiàn)SessionBean接口
            public class HelloBean implements SessionBean {
             //這是個會話EJB,聲明會話上下文
             private SessionContext ctx;
             //聲明字符串
             private String words;
             //接口SessionBean中定義的方法,必須實現(xiàn)
             public void setSessionContext(SessionContext ctx) {
              this.ctx = ctx;
             }
             //接口SessionBean中定義的方法,必須實現(xiàn)
             public void ejbActivate() {
             }
             //接口SessionBean中定義的方法,必須實現(xiàn)
             public void ejbPassivate() {
             }
             //接口SessionBean中定義的方法,必須實現(xiàn)
             public void ejbRemove() {
             }
             //和主接口定義對應的方法,必須實現(xiàn)
             public void ejbCreate() throws CreateException {
              words = "Hello World";
             }
             //供客戶端調(diào)用的業(yè)務(wù)邏輯方法,這里只簡單的打印字符串,并把字符串返回到客戶端
             public String sayHello()
             {
              System.out.println("I am in an EJB of Server ."+words);
              return words;
             }  }
          (3) EJB代碼編譯
            首先打開命令窗口,進入C:\work\hello目錄,運行環(huán)境變量腳本程序:
             c:\work\hello>c:\work\setEnv
            建立build目錄:
             c:\work\hello>md build
            執(zhí)行編譯命令:
             c:\work\hello>java -d build Hello.java HelloHome.java HelloBean.java
            其中:-d build 表示編譯生成的class文件放在build目錄中。
          (4)EJB部署文件編寫
            部署文件是EJB的重要組成部分。簡單地說,部署文件就是EJB的說明文件,這個文件由服務(wù)器容器使用,服務(wù)器根據(jù)部署文件的說明來管理EJB。
            EJB部署文件是標準的XML文件,必須遵守XML的語法規(guī)則。此外,還要遵守相關(guān)的DTD規(guī)則。
            部署文件到少有兩個文件ejb-jar.xml和weblogic-ejb-jar.xml。前者為EJB自身的一些特征,如名稱、組成等:后者是和EJB部署相關(guān)的描述。
            編寫部署文件:
            (1)在文件編輯器中編輯ejb-jar.xml文件,并保存在C:\work\hello目錄下。ejb-jar.xml文件的內(nèi)容為:
          <?xml version="1.0"?>
          <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
          <!--EJB說明文件-->
          <ejb-jar>
          <small-icon>images/green-cube.gif</small-icon>
          <enterprise-beans>
          <!--定義會話EJB-->
          <session>
          <small-icon>images/orange-cube.gif</small-icon>
          <!--定義會話EJB名-->
          <ejb-name>MyFirstEJB</ejb-name>
          <!--定義會話EJB主接口名-->
          <home>HelloHome</home>
          <!--定義會話EJB遠程接口名-->
          <remote>Hello</remote>
          <!--定義會話EJB實現(xiàn)類名-->
          <ejb-class>HelloBean</ejb-class>
          <!--定義會話EJB類型-->
          <session-type>Stateless</session-type>
          <transaction-type>Container</transaction-type>
          </session>
          </enterprise-beans>
          <!--定義會話EJB裝配描述-->
          <assembly-descriptor>
          <container-transaction>
          <method>
          <ejb-name>MyFirstEJB</ejb-name>
          <method-intf>Remote</method-intf>
          <method-name>*</method-name>
          </method>
          <trans-attribute>Required</trans-attribute>
          </container-transaction>
          </assembly-descriptor>
          </ejb-jar>
            (2)在文件編輯器中編輯weblogic-ejb-jar.xml文件,并保存在C:\work\hello目錄下。weblogic-ejb-jar.xml文件的內(nèi)容為:
          <?xml version="1.0"?>
          <!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN' 'http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd'>
          <!--EJB部署說明文件-->
          <weblogic-ejb-jar>
          <weblogic-enterprise-bean>
          <!--EJB名-->
          <ejb-name>MyFirstEJB</ejb-name>
          <!--定義EJB最大緩沖池-->
          <caching-descriptor>
          <max-beans-in-free-pool>100</max-beans-in-free-pool>
          </caching-descriptor>
          <!--定義EJB jndi名稱-->
          <jndi-name>HelloHome</jndi-name>
          </weblogic-enterprise-bean>
          </weblogic-ejb-jar>
          (5) 打包
            把上面開發(fā)的所有文件打成jar文件包。這些文件包括一三個類文件:Hello.class、HelloHome.class、HelloBean.class和部署文件:ejb-jar.xml,weblogic-ejb-jar.xml。打包時,文件放置的位置是嚴格要求的。具體為:*.class文件放在當前目錄(即C:\work\hello\build目錄下),部署文件必須入在下一級目錄Meta-inf中(即C:\work\hello\build\Meta-inf目錄下)。如果EJB包含圖像文件,則圖像文件必須在build目錄的下一級目錄images中(即C:\work\hello\build\images目錄下)。
            具體操作步驟為:
            (1)在build目錄中創(chuàng)建Meta-inf目錄,當前路徑為C:\work\hello,執(zhí)行:
             c:\work\hello>md build\Meta-inf
            (2)把部署文件拷貝到hello\Meta-inf目錄下:
             c:\work\hello>copy *.xml build\Meta-inf
            (3)執(zhí)行:
             c:\work\hello>md build\images
             c:\work\hello>copy *.gif build\images
            當然,本例中沒有使用圖像文件,所以可以免去此步驟。
            (4)用jar命令在build目錄下打包。當前路徑是c:\work\hello,運行:
             c:\work\hello>cd build
             c:\work\hello\bulid>jar cv0f std_myfirstejb_hello.jar META-INF *.class images
             c:\work\hello\build>cd..
            其中:jar是Jdk中的打包命令:cv0f是命令參數(shù);std_myfirstejb_hello.jar是生成的文件名,由用戶指定。
            命令執(zhí)行完后,在目錄build中應該生成文件std_myfirstejb_hello.jar。
            至此,打包完成。
          (6)編譯生成窗口代碼
            Weblogic Server提供了編譯生成容器代碼的工具,它是一個java程序weblogic.ejbc。在命令行窗口中執(zhí)行:
            c:\work\hello>java weblogic.ejbc -compiler javac build\std_myfirstejb_hello.jar build\myfirstejb_hello.jar
            可以看出ejbc把std_myfirstejb_hello.jar文件編譯成myfirstejb_hello.jar,它包括了Weblogic Server平臺可以識別的ejb容器代碼。
            如果運行成功,則在build目錄下產(chǎn)生myfirstejb_hello.jar文件。

          posted on 2007-03-23 21:33 飛鳥 閱讀(604) 評論(0)  編輯  收藏 所屬分類: Struts
          主站蜘蛛池模板: 贵定县| 东阿县| 富民县| 辽源市| 兴安县| 彰化县| 天津市| 克山县| 松原市| 沁源县| 上饶市| 丹东市| 印江| 柳江县| 平湖市| 徐州市| 延寿县| 祁门县| 丹巴县| 东乡县| 延川县| 寿光市| 日喀则市| 平顶山市| 育儿| 嘉禾县| 边坝县| 南开区| 胶州市| 长沙县| 四川省| 江达县| 新平| 曲周县| 全南县| 霍邱县| 搜索| 福安市| 乌拉特后旗| 尤溪县| 繁峙县|