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

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

  • <strong id="5koa6"></strong>
  • J2EE從零開始之EJB開發過程

    發表于:2007-04-29來源:作者:點擊數: 標簽:開發上面過程ejb開始
    上面在EJB的 開發 過程中使用命令行的方式,我們可以把有所有這些命令行集中起來做成一個命令腳本文件build.cmd,使用它可以一次性執行這些命令,而不必一個命令一個命令的執行。該文件存放在C:\work\hello目錄下,其內容為: md build javac -d build Hello.
    上面在EJB的開發過程中使用命令行的方式,我們可以把有所有這些命令行集中起來做成一個命令腳本文件build.cmd,使用它可以一次性執行這些命令,而不必一個命令一個命令的執行。該文件存放在C:\work\hello目錄下,其內容為:

    md build
    javac -d build Hello.java HelloHome.java HelloBean.java
    md build\Meta-inf
    copy *.xml build\Meta-inf
    md build\images
    copy *.gif build\images
    cd build
    jar cv0f std_myfirstejb_hello.jar META-INF *.class images
    cd ..
    java weblogic.ejbc -compiler javac build\std_myfirstejb_hello.jar build\myfirstejb_hello.jar

      這樣,在程序代碼編輯好的情況下,只運行這個命令腳本程序,就可以完成EJB開發。

    2.4 EJB部署

      EJB的部署有很多種方法,最簡單的一種就是把C:\work\hello\build目錄下的myfirstejb_hello.jar文件拷貝到服務器的applications目錄下,即C:\bea\wlserver6.0\config\mydomain\applications目錄下。如果服務器已經啟動,則在拷貝的時候不需要重新啟動服務器。服務器會自動檢測到新拷貝的EJB。

    2.5 EJB運行測試

      編寫一個簡單的客戶端程序HelloClient來測試已部署的ejb。

    2.5.1 客戶端測試程序代碼編寫

      在文本編輯器中編輯HelloClient.java文件,并保存在C:\work\hello目錄下,其代碼如下:

    //本類需要引入的類或接口
    import java.rmi.RemoteException;
    import java.util.Properties;
    import javax.ejb.CreateException;
    import javax.ejb.RemoveException;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.rmi.PortableRemoteObject;

    /**
    * 這是EJB的客戶端測試程序
    */

    public class HelloClient {

    private static final String JNDI_NAME = "HelloHome";

    private String url;
    private HelloHome home;

    public HelloClient(String url)
    throws NamingException
    {

    this.url = url;

    home = lookupHome();
    }

    void test()
    throws RemoteException,CreateException
    {
    Hello hello = (Hello) PortableRemoteObject.narrow(home.create(), Hello.class);
    System.out.println("I am in client. "+hello.sayHello());
    }


    /**
    * 運行這個實例:
    * java HelloClient t3://localhost:7001
    */
    public static void main(String[] args) throws Exception {

    System.out.println("\n客戶端程序測試開始...\n");

    String url = "t3://localhost:7001";

    // 解析命令行
    if (args.length != 1) {
    System.out.println("用法: java HelloClient t3://hostname:port");
    return;
    } else {
    url = args[0];
    }
    HelloClient client = null;
    try {
    client = new HelloClient(url);
    } catch (NamingException ne) {
    System.exit(1);
    }
    try {
    client.test();
    } catch (Exception e) {
    System.exit(1);
    }
    System.out.println("\n客戶端程序測試結束...\n");
    }


    /**
    * 查找 EJB 的主接口
    */
    private HelloHome lookupHome()
    throws NamingException
    {
    Context ctx = getInitialContext();
    Object home = ctx.lookup(JNDI_NAME);
    return (HelloHome) PortableRemoteObject.narrow(home, HelloHome.class);
    }

    /**
    * 使用屬性對象獲取上下文
    */
    private Context getInitialContext() throws NamingException {
    Properties h = new Properties();
    h.put(Context.INITIAL_CONTEXT_FACTORY,
    "weblogic.jndi.WLInitialContextFactory");
    h.put(Context.PROVIDER_URL, url);
    return new InitialContext(h);
    }
    }

    2.5.2 客戶端測試程序代碼編譯

      請執行以下操作:
       (1)在hello目錄下創建client子上當放置客戶端測試程序,創建client目錄,拷貝文件。執行:
        c:\work\hello>md client
        c:\work\hello>copy HelloClient.java client
       注意:因為HelloClient類需引入Hello和HelloHome接口,因此要從build目錄下拷貝Hello.class和HelloHome.class文件到client目錄。

       c:\work\hello>copy build\Hello.class client
        c:\work\hello>copy build\HelloHome.class client
       (2)進入client目錄
        c:\work\hello>cd client
       (3)編譯:
        c:\work\hello\client>java HelloClient.java
       至此客戶端測試程序代碼編譯完畢。
       也可以把這些命令做成一個命令腳本文件build_client.cmd,保存在C:\work\hello目錄,其代碼如下:

    md client
    copy HelloClient.java client
    copy build\Hello.class client
    copy build\HelloHome.class client
    cd client
    javac HelloClient.java

    2.5.3 運行測試

      運行測試程序,執行如下操作:
       (1)啟動Weblogic Server 6.0的缺省服務器,Weblogic Server的啟動是個簡單的過程,可以通過開始菜單和直接運行啟動命令腳本兩種方式,詳細情況請參見第1章。
       (2)運行測試程序。在命窗口中進入C:\work\hello\client目錄,執行:
        c:\work\hello\client>java HelloClient t3://127.0.0.1:7001
       (3)觀察運行結果:應該如下:
       客戶端程序測試開始...
       I am in client. Hello World
       客戶端程序測試結束...
    而在Weblogic Server的命令行窗口中打印如下信息:
       I am in an EJB of Server .Hello World
    并且每運行一次,這行信息就打印一次。

    2.6 常見故障及解決方法

      (1)在命令行窗口中運行javac命令出現:
       "java"不是內部或外部命令,也不是可運行的程序或批處理文件。
       原因:javac.exe命令文件所有的路徑沒有包含在環境變量Path中。
       (2)執行javac -d build Hello.java HelloHome.java HelloBean.java 命令時出現編譯錯誤,其中有一條錯誤是:
       cannot resolve symbol
       symbol : class EJBHome
       location : package ejb
       impor javax.ebj.EJBHome;
       原因:javac.exe命令文件甩在的路徑沒有被包含在環境變量Path中。
       解決方法:運行環境變量腳本命令setEnv.cmd。
       (3)運行客戶端測試程序時,即運行:
       java HelloClient t3://127.0.0.1:7001時,出現:
        Exception in thread "main" java.lang.NoClassFoundError: HelloClient
       可能的原因是沒有把“.”設置到環境變量classpath中。
       (4)執行java weblogic.ejbc... 命令時,拋出org.xml.sax.SAXParseException異常。
       原因:xml文件有語法錯誤
       解決辦法:進行.xml文件有效性檢查。
       (5)執行之后僅顯示一行文字程序就結束。
       原因:可能沒有部署或者沒有正確部署EJB。
       解決辦法:仔細查看本書3.4節的內容。

    2.7 本章小結

      本章首先討論如何進行一些準備工作,然后詳細介紹了一個簡單的EJB的開發過程,包括編寫代碼、編譯、打包、部署和測試運行。通過本章的學習,以期對J2EE的開發有一個感性的認識。
       接下來的第3章到第7章將全面深入的討論EJB應用及其開發的有關問題。
       ----
       對新手的提示:本章所稱腳本文件使用的擴展名是.cmd,實際上該文件在DOS平臺上擴展名為.bat,也稱為批處理文件。
       本章的內容涉及到DOS環境設置,如果你想了解更多的內容可以查詢相關的內容


    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    ...

    熱門標簽

    老湿亚洲永久精品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>