• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    會話EJB完整開發過程(以weblogic為服務器)

    發布: 2007-6-21 16:03 | 作者:   | 來源:   | 查看: 18次 | 進入軟件測試論壇討論

    領測軟件測試網

       
      開發步驟(操作界面的圖片不能貼上,見諒。

    開發運行環境:j2eesdk1.4+weblogic8.1
    說明:本試驗已開發一個會話EJB為例,系統采用的應用服務器為weblogic8.1
    1、編寫bean代碼(代碼的目錄在c:ejbhello下)
    ① 定義Home Interface

    EJB容器通過EJB的Home Interface來創建EJB實例,和Remote Interface一樣,執行Home Interface的類由EJB生成工具生成。代碼如下:
    package ejb.hello;
    import javax.ejb.*;
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    import java.util.*;
    /**
    *只定義create方法
    */
    public interface HelloHome extends EJBHome {

    public Hello create() throws CreateException,
    RemoteException;
    }
    ②定義EJB遠程接口(Remote Interface)
    任何一個EJB都是通過Remote Interface被調用,首先要在Remote Interface中定義這個EJB可以被外界調用的所有方法。執行Remote Interface的類由EJB生成工具生成,試驗的代碼如下:
    package ejb.hello;

    import java.rmi.RemoteException;
    import java.rmi.Remote;
    import javax.ejb.*;

    public interface Hello extends EJBObject, Remote {

    //定義供遠程調用的業務邏輯方法
    public String getHello() throws RemoteException;
    public String getStr() throws RemoteException;
    }
    ③ EJB類的實現
    在EJB類中,必須給出在Remote Interface中定義的遠程方法的具體實現。EJB類中還包括一些EJB規范中定義的必須實現的方法,這些方法都有比較統一的實現模版,只需花費精力在具體業務方法的實現上。試驗的代碼如下:
    package ejb.hello;
    import javax.ejb.*;
    import java.util.*;
    import java.rmi.*;
    //類的實現
    public class HelloBean implements SessionBean {
    static final boolean verbose = true;
    private SessionContext ctx;
    // Implement the methods in the SessionBean
    // interface
    public void ejbActivate() {
    if (verbose)
    System.out.println("ejbActivate called");
    }
    public void ejbRemove() {
    if (verbose)
    System.out.println("ejbRemove called");
    }
    public void ejbPassivate() {
    if (verbose)
    System.out.println("ejbPassivate called");
    }
    //Sets the session context.
    public void setSessionContext(SessionContext ctx) {
    if (verbose)
    System.out.println("setSessionContext called");
    this.ctx = ctx;
    }
    /**
    * This method corresponds to the create method in
    * the home interface HelloHome.java.
    * The parameter sets of the two methods are
    * identical. When the client calls
    * HelloHome.create(), the container allocates an
    * instance of the EJBean and calls ejbCreate().
    */
    public void ejbCreate () {
    if (verbose)
    System.out.println("ejbCreate called");
    }
    //以下業務邏輯的實現
    public String getStr()
    throws RemoteException
    {
    return("...My First EJB Test??Lenper_xie...!");
    }
    }
    ④會話Bean的代碼完成后,編寫客戶端,代碼如下:
    package ejb.hello;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import java.util.Hashtable;
    import javax.ejb.*;
    import java.rmi.RemoteException;

    /**
    *用weblogic
    */
    public class HelloClient{
    public static void main(String args[]){
    String url = "t3://localhost:7001";
    Context initCtx = null;
    HelloHome hellohome = null;
    try{
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY,
    "weblogic.jndi.WLInitialContextFactory");
    env.put(Context.PROVIDER_URL, url);
    initCtx = new InitialContext(env);
    }catch(Exception e){
    System.out.println("Cannot get initial context: " + e.getMessage());
    System.exit(1);
    }
    try{
    hellohome = (HelloHome)initCtx.lookup("HelloHome");
    Hello hello = hellohome.create();
    String s = hello.getStr();
    System.out.println(s);
    }catch(Exception e){
    System.out.println(e.getMessage());
    System.exit(1);
    }
    }
    }

    2、將代碼進行編譯
    先在c:ejbhello目錄下建一個目錄build,然后執行編譯命令如下:
    javac ?Cd build *.java //-d build 表示編譯后的class放到build目錄下
    編譯完之后會在build建立包的文件夾。

    3、創建ejb-jar.xml部署描述文件
    ejb-jar.xml文件是EJB的部署描述文件,包含EJB的各種配置信息,如是有狀態Bean(Stateful Bean) 還是無狀態Bean(Stateless Bean),交易類型等。以下是HelloBean的配置文件:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">

    <ejb-jar>
    <description>Sidney.Xie EJB Test example</description>
    <display-name>>Sidney.Xie EJBTest</display-name>
    <small-icon></small-icon>
    <large-icon></large-icon>
    <enterprise-beans>
    <session>
    <ejb-name>Hello</ejb-name>
    <home>ejb.hello.HelloHome</home>
    <remote>ejb.hello.Hello</remote>
    <ejb-class>ejb.hello.HelloBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>Hello</ejb-name>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    </assembly-descriptor>

    </ejb-jar>

    4、創建weblogic-ejb-jar.xml文件
    此文件適用于weblogic部署是用的
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN" "http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd">
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>Hello</ejb-name>
    <jndi-name>HelloHome</jndi-name>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>

    5、創建jar文件用于部署到服務器上
    在創建jar文件之前要將文件的目錄設定好,首先在ejbhellouild 建立一子目錄META-INF,將weblogic-ejb-jar.xml文件和ejb-jar.xml要放到該目錄下,然后制作jar文件.命令如下:
    jar cvf Hello2.jar META-INF ejb //將META-INF和包ejb中的文件打包


    6、創建能部署到weblogic上的jar文件
    由于不同的廠商的應用服務器有不同的機制,所以要分別制作個服務器所識別的jar文件,試驗中使weblogic,使用以下命令:
    java weblogic.ejbc -complier javac buildHello2.jar buildHello.jar



    7、部署EJB到weblogic
    首先要啟動weblogic服務,然后在瀏覽器中輸入http://localhost:7001/console,打開網頁后輸入帳號和密碼進入weblogic的控制臺,在控制臺中可以部署EJB,畫面如下:
    進入部署頁面后根據提示將Hello.jar文件部署到服務器上去,會有顯示部署成功。
    8、測試結果
    在命令行執行client端程序來測試,進入目錄build下,執行命令java ejb.hello.HelloClient

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>