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

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

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

    隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
    數據加載中……

    Weblogic10 + EJB3入門教程(1):編寫第一個無狀態會話Bean(Stateless Session Bean)

    本文為原創,如需轉載,請注明作者和出處,謝謝!

        在本文主要介紹如何來開發一個Stateless Session Bean,并在未安裝WebLogic10的機器上訪問Session Bean。開發EJB3 Stateless Session Bean要比開發EJB2 Stateless Session Bean容易得多,只需要幾個注釋就可以搞定。讀者可按如下的步驟來開發和調用EJB3 Stateless Session Bean

    1步:編寫遠程接口

        每一個Session Bean需要一個遠程接口,該接口的代碼如下:

    package com.earth;

    import javax.ejb.Remote;

    //  此處必須使用@Remote注釋指定該接口為遠程接口
    @Remote
    public interface CompanyRemote
    {
        
    public String getName();
        
    public Employee[] getEmployees();
    }

        CompanyRemote接口中定義了兩個方法,分別返回一個字符串和一個Employee類型的數組。

    2步:編寫Employee

        Employee類是一個實現implements java.io.Serializable接口的JavaBean,代碼如下:

    package com.earth;

    public class Employee implements java.io.Serializable
    {
        
    private String name;
        
    private String job;
        
    private int age;
        
    public String getName()
        {
            
    return name;
        }
        
    public void setName(String name)
        {
            
    this.name = name;
        }
        
    public String getJob()
        {
            
    return job;
        }
        
    public void setJob(String job)
        {
            
    this.job = job;
        }
        
    public int getAge()
        {
            
    return age;
        }
        
    public void setAge(int age)
        {
            
    this.age = age;
        }
    }

    3步:編寫Stateless Session Bean

        Session Bean需要實現CompanyRemote接口,代碼如下:

    package com.earth;

    import java.util.List;
    import java.util.ArrayList;
    import javax.ejb.Remote;
    import javax.ejb.Stateless;

    @Stateless(mappedName 
    = "Company")
    public class Company implements CompanyRemote
    {
        
    public Employee[] getEmployees()
        {
            Employee[] employees 
    = new Employee[2];
            employees[
    0= new Employee();
            employees[
    0].setName("superman");
            employees[
    0].setJob("CEO");
            employees[
    0].setAge(1234);
            
            employees[
    1= new Employee();
            employees[
    1].setName("擎天柱");
            employees[
    1].setJob("CTO");
            employees[
    1].setAge(4321);
            
            
    return employees;
        }
        
    public String getName()
        {        
            
    return "地球軟件有限公司";
        }
    }

        這個Session Bean使用了@Stateless注釋指定了該Session Bean是無狀態的,并使用了mappedName屬性指定該Session BeanJNDI名的前一部分,如果mappedName屬性的值是Company,則該Session BeanJNDI名是Company#com.earth.CompanyRemote。

    4步:編譯.java文件,并生成.jar文件


        將上面三個.java文件放到同一個目錄下,并使用如下的命令生成相應的.class文件:

    javac -d . -classpath .;C:\bea\wlserver_10.3\server\lib\weblogic.jar *.java

        注意:在編譯.java文件時要將在classpath環境變量或javac-classpath參數中指定weblogic.jar文件,假設WebLogic10安裝在了C盤的bea目錄,則weblogic.jar文件位于C:"bea"wlserver_10.3"server"lib目錄中,本例使用了weblogic10.3。
        在生成.class文件后,使用如下的命令生成company.jar文件:

    jar cvf company.jar com


    5步:發布EJB

        發布EJB的方法很多,然而最簡單的是直接將company.jar文件復制到如下的目錄:

    C:\bea\user_projects\domains\base_domain_new\autodeploy

        其中base_domain_new是域名,讀者也可將company.jar文件復制到其他域的autodeploy目錄中。
        啟動Weblogic,該EJB自動發布。讀者可以使用如下的URL來查看在當前Weblogic服務器中注冊的JNDI


    http://localhost:7001/console/consolejndi.portal?_nfpb=true&_pageLabel=JNDIHomePage&server=AdminServer

        其中AdminServer為Weblogic的服務名,可能在讀者的機器上是其他的服務名,請使用如下的URL進行Weblogic Console進行查看:

    http://localhost:7001/console

        安裝EJB后,本機注冊的JNDI如下圖所示。


    6
    步:編寫客戶端程序

        調用EJB的客戶端代碼如下:

    import java.util.Properties;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import com.earth.*;

    public class TestCompany
    {
        
    public static void main(String[] args) throws Exception
        {

            Properties props 
    = new Properties();
            props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
                    
    "weblogic.jndi.WLInitialContextFactory");
            props.setProperty(Context.PROVIDER_URL, 
    "t3://192.168.17.127:7001");
            InitialContext ctx 
    = new InitialContext(props);
            CompanyRemote companyRemote 
    = (CompanyRemote) ctx
                    .lookup(
    "Company#com.earth.CompanyRemote");
            System.out.println(companyRemote.getName());
            Employee[] employees 
    = companyRemote.getEmployees();
            
    for (Employee employee : employees)
            {
                System.out.println(
    "name:" + employee.getName());
                System.out.println(
    "job:" + employee.getJob());
                System.out.println(
    "age:" + employee.getAge());
                System.out.println(
    "-------------------------");            
            }
        }
    }

        使用如下的命令編譯TestCompany.java

    javac  -classpath .;company.jar;E:\bea\wlserver_10.3\server\lib\weblogic.jar TestCompany.java

        注意:TestCompany.javacompany.jar文件需要在同一目錄下。

       
    由于調用客戶端的代碼并不一定在安裝WebLogic的機器上運行,因此,在將TestCompany.classcompany.jar(發布到客戶端的這個jar文件只需要Employee.classCompanyRemote.class文件即可,Company.class可以從該jar文件中刪除)發布到客戶端時還需要帶一些WebLogic自身的jar文件。雖然Weblogic中有一個wlclient.jar文件,但光有這個文件還不夠,不了方便提取客戶端需要的jar文件,Weblogic提供了一個jar包,通過該包,可以將客戶端需要的所有.class文件打成一個jar包。
        這個jar文件是C:\bea\modules\com.bea.core.jarbuilder_1.2.0.0.jar,可通過如下的命令行來生成客戶端需要的jar包:

        java -jar ../../../modules/com.bea.core.jarbuilder_1.2.0.0.jar

        注意:上面的命令必須在C:\bea\wlserver_10.3\server\lib目錄中執行。

        在執行上面的命令后,將在E:\bea\wlserver_10.3\server\lib目錄生成一個wlfullclient.jar文件,將該文件與TestCompany.classcompany.jar一同復制到客戶端的機器上即可。并通過如下的命令來執行TestCompany.class

        java -classpath .;company.jar;wlfullclient.jar TestCom

        執行上面的命令后的輸出結果如下面兩個圖所示:



    Windows下的執行結果



    Linux下的執行結果





    Android開發完全講義(第2版)(本書版權已輸出到臺灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

    posted on 2009-02-08 21:50 銀河使者 閱讀(4384) 評論(6)  編輯  收藏 所屬分類: java 原創 、ejb3

    評論

    # re: Weblogic10 + EJB3入門教程(1):編寫第一個無狀態會話Bean(Stateless Session Bean)[未登錄]  回復  更多評論   

    生成的wlfullclient.jar好大啊
    2009-03-27 17:28 | 哈哈

    # re: Weblogic10 + EJB3入門教程(1):編寫第一個無狀態會話Bean(Stateless Session Bean)  回復  更多評論   

    沒辦法,現在一般在web應用中調用ejb,所有部署在服務端也無所謂了。哈哈
    2009-03-27 19:44 | 銀河使者

    # re: Weblogic10 + EJB3入門教程(1):編寫第一個無狀態會話Bean(Stateless Session Bean)  回復  更多評論   

    thanks
    2009-04-05 14:37 | lyj

    # re: Weblogic10 + EJB3入門教程(1):編寫第一個無狀態會話Bean(Stateless Session Bean)  回復  更多評論   

    用appc生成的stubs文件是不是會小一點?我沒找到設置環境的資料。
    2009-04-05 14:53 | lyj

    # re: Weblogic10 + EJB3入門教程(1):編寫第一個無狀態會話Bean(Stateless Session Bean)  回復  更多評論   

    感謝博主,寫得很詳細。解決問題了!
    2011-08-13 21:57 | 一閑人

    # re: Weblogic10 + EJB3入門教程(1):編寫第一個無狀態會話Bean(Stateless Session Bean)  回復  更多評論   

    樓主寫得很好,對EJB一竅不通,通過這個例子稍微了解了一些,謝謝樓主
    2012-12-03 16:24 | 陳燁
    主站蜘蛛池模板: 亚洲成av人片一区二区三区| 色妞www精品视频免费看| 免费人成视网站在线观看不卡| 99视频精品全部免费观看| 一个人看的免费高清视频日本| 亚洲五月综合缴情婷婷| 午夜亚洲www湿好大| 亚洲伊人久久成综合人影院| 免费观看a级毛片| 亚洲三级高清免费| 久久国产精品一区免费下载| 精品国产污污免费网站入口在线| 亚洲AV无码一区二区三区牲色| 亚洲欧洲精品国产区| 亚洲男人的天堂在线播放| 美腿丝袜亚洲综合| 亚洲国产午夜中文字幕精品黄网站 | 黄页网站在线免费观看| 97se亚洲国产综合自在线| 亚洲精品福利在线观看| 亚洲AV无码久久精品成人| 在线观看亚洲av每日更新| 亚洲国产午夜福利在线播放| 国产精品冒白浆免费视频 | 亚洲手机中文字幕| 久久亚洲精品人成综合网| 亚洲V无码一区二区三区四区观看| 亚洲日韩中文在线精品第一| 亚洲成A人片在线观看无码3D| 国产自产拍精品视频免费看| 最好免费观看韩国+日本| 午夜私人影院免费体验区| 最近2019中文字幕免费看最新| 99爱在线精品免费观看| 国产免费不卡v片在线观看| 国产免费的野战视频| 成人免费黄色网址| 永久免费毛片在线播放| AV免费网址在线观看| 暖暖日本免费在线视频 | 亚洲色丰满少妇高潮18p|