<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-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創建方法
       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 {
       //定義業務邏輯方法
       public String sayHello()
       throws RemoteException;
      }
    3.編寫Bean類實現程序
      在文件編輯器中編輯HelloBean.java文件,并保存在C:\work\hello目錄下。HellloBean.java文件的代碼為:
      //本類需要引入的類或接口
      import javax.ejb.CreateException;
      import javax.ejb.SessionBean;
      import javax.ejb.SessionContext;
      //實現業務邏輯,必須實現SessionBean接口
      public class HelloBean implements SessionBean {
       //這是個會話EJB,聲明會話上下文
       private SessionContext ctx;
       //聲明字符串
       private String words;
       //接口SessionBean中定義的方法,必須實現
       public void setSessionContext(SessionContext ctx) {
        this.ctx = ctx;
       }
       //接口SessionBean中定義的方法,必須實現
       public void ejbActivate() {
       }
       //接口SessionBean中定義的方法,必須實現
       public void ejbPassivate() {
       }
       //接口SessionBean中定義的方法,必須實現
       public void ejbRemove() {
       }
       //和主接口定義對應的方法,必須實現
       public void ejbCreate() throws CreateException {
        words = "Hello World";
       }
       //供客戶端調用的業務邏輯方法,這里只簡單的打印字符串,并把字符串返回到客戶端
       public String sayHello()
       {
        System.out.println("I am in an EJB of Server ."+words);
        return words;
       }  }
    (3) EJB代碼編譯
      首先打開命令窗口,進入C:\work\hello目錄,運行環境變量腳本程序:
       c:\work\hello>c:\work\setEnv
      建立build目錄:
       c:\work\hello>md build
      執行編譯命令:
       c:\work\hello>java -d build Hello.java HelloHome.java HelloBean.java
      其中:-d build 表示編譯生成的class文件放在build目錄中。
    (4)EJB部署文件編寫
      部署文件是EJB的重要組成部分。簡單地說,部署文件就是EJB的說明文件,這個文件由服務器容器使用,服務器根據部署文件的說明來管理EJB。
      EJB部署文件是標準的XML文件,必須遵守XML的語法規則。此外,還要遵守相關的DTD規則。
      部署文件到少有兩個文件ejb-jar.xml和weblogic-ejb-jar.xml。前者為EJB自身的一些特征,如名稱、組成等:后者是和EJB部署相關的描述。
      編寫部署文件:
      (1)在文件編輯器中編輯ejb-jar.xml文件,并保存在C:\work\hello目錄下。ejb-jar.xml文件的內容為:
    <?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實現類名-->
    <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文件的內容為:
    <?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) 打包
      把上面開發的所有文件打成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目錄中創建Meta-inf目錄,當前路徑為C:\work\hello,執行:
       c:\work\hello>md build\Meta-inf
      (2)把部署文件拷貝到hello\Meta-inf目錄下:
       c:\work\hello>copy *.xml build\Meta-inf
      (3)執行:
       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是命令參數;std_myfirstejb_hello.jar是生成的文件名,由用戶指定。
      命令執行完后,在目錄build中應該生成文件std_myfirstejb_hello.jar。
      至此,打包完成。
    (6)編譯生成窗口代碼
      Weblogic Server提供了編譯生成容器代碼的工具,它是一個java程序weblogic.ejbc。在命令行窗口中執行:
      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目錄下產生myfirstejb_hello.jar文件。

    posted on 2007-03-23 21:33 飛鳥 閱讀(601) 評論(0)  編輯  收藏 所屬分類: Struts
    主站蜘蛛池模板: 美女巨胸喷奶水视频www免费| 亚洲中文字幕一二三四区| 久久久久亚洲AV成人网人人软件 | 亚洲日韩一区精品射精| 免费国产在线精品一区| 免费在线观看一级片| 青娱乐免费视频在线观看| 啦啦啦手机完整免费高清观看| 亚洲成aⅴ人片久青草影院| 亚洲一区综合在线播放| 亚洲精品无码aⅴ中文字幕蜜桃| h片在线播放免费高清 | 深夜福利在线视频免费| 1000部羞羞禁止免费观看视频| 国产婷婷高清在线观看免费| 亚洲AV综合色区无码另类小说| 亚洲免费网站观看视频| 蜜臀91精品国产免费观看| 亚洲高清中文字幕综合网| 黄色大片免费网站| 国产福利在线观看免费第一福利| 亚洲老妈激情一区二区三区| 亚洲精品乱码久久久久蜜桃| 亚洲av成人一区二区三区在线观看| 亚洲午夜久久久久久尤物| 久久久久久噜噜精品免费直播| 亚洲日韩精品A∨片无码| 黄色片网站在线免费观看| 亚洲人成人一区二区三区| 999在线视频精品免费播放观看| 亚洲av色影在线| 精品一区二区三区高清免费观看| 亚洲av永久无码精品秋霞电影影院| 免费在线观看h片| 亚洲综合激情九月婷婷 | 国产大片免费天天看| 亚洲色图在线观看| 一级毛片免费播放| 国产精一品亚洲二区在线播放| 97碰公开在线观看免费视频| 精品一区二区三区免费毛片|