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

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

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

    從制造到創(chuàng)造
    軟件工程師成長之路
    posts - 292,  comments - 96,  trackbacks - 0

    1、安裝Weblogic:
          使用的EJB服務(wù)是BEA的weblogic8.1,下載BEA的weblogic8.1,然后安裝。安裝步驟省略?! ?br /> 2、定義EJB遠程接口(Remote Interface):
           任何一個EJB都是通過Remote Interface被調(diào)用,EJB開發(fā)者首先要在Remote Interface中定義這個EJB可以被外界調(diào)用的所有方法。執(zhí)行Remote Interface的類由EJB生成工具生成。
      以下是HelloBean的Remote Inteface程序:
    package com.leo;
    import java.rmi.RemoteException;
    import java.rmi.Remote;
    import javax.ejb.*;
    public interface Hello extends EJBObject, Remote {
    //this method just get "Hello EJB" from HelloEJB.
    public String getHello() throws RemoteException;
    }
    3、定義Home Interface
    EJB容器通過EJB的Home Interface來創(chuàng)建EJB實例,和Remote Interface一樣,執(zhí)行Home Interface的類由EJB生成工具生成。以下是HelloEJB 的Home Interface程序:
    package com.leo;
    import javax.ejb.*;
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    import java.util.*;
    /**
    * This interface is extremely simple it declares only
    * one create method.
    */
    public interface HelloHome extends EJBHome {
    public Hello create() throws CreateException,
    RemoteException;
    }
    4、寫EJB類
    在EJB類中,編程者必須給出在Remote Interface中定義的遠程方法的具體實現(xiàn)。EJB類中還包括一些 EJB規(guī)范中定義的必須實現(xiàn)的方法,這些方法都有比較統(tǒng)一的實現(xiàn)模版,編程者只需花費精力在具體業(yè)務(wù)方法的實現(xiàn)上。
    以下是HelloEJB的代碼:
    package com.leo;
    import javax.ejb.*;
    public class HelloEJB implements SessionBean{
        public void ejbCreate(){}
        public void ejbRemove(){}
        public void ejbActivate(){}
        public void ejbPassivate(){}
        public void setSessionContext(SessionContext ctx){}
        public String getHello() {
             return new String("Hello,EJB");
        }
    }
    5、創(chuàng)建ejb-jar.xml文件
      ejb-jar.xml文件是EJB的部署描述文件,包含EJB的各種配置信息,如是有狀態(tài)Bean(Stateful Bean) 還是無狀態(tài)Bean(Stateless Bean),交易類型等。ejb-jar.xml文件的詳細信息請參閱EJB規(guī)范。以下是HelloBean的配置文件:
    <?xml version="1.0"?>
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems Inc.//DTD Enterprise JavaBeans 1.2//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_2.dtd">
    <ejb-jar>
    <enterprise-beans>
    <session>
    <ejb-name>Hello</ejb-name>
    <home>com.leo.HelloHome</home>
    <remote>com.leo.Hello</remote>
    <ejb-class>com.leo.HelloEJB</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    </ejb-jar>
     

    6、創(chuàng)建weblogic-ejb-jar.xml
     <?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>
     <description><![CDATA[Generated by XDoclet]]></description>
       <weblogic-enterprise-bean>
          <ejb-name>Hello</ejb-name>
          <stateless-session-descriptor>
          </stateless-session-descriptor>
          <reference-descriptor>
          </reference-descriptor>
          <jndi-name>Hello</jndi-name>
          <local-jndi-name>HelloLocal</local-jndi-name>
       </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    7、部署和編譯
              EJB的jar包是由class文件和描述文件組成,對于weblogic服務(wù)器來說還要增加weblogic-ejb-jar.xml描述文件。編譯Java源文并將編譯后class和ejb-jar.xml、weblogic-ejb-jar.xml打包到Hello.jar
    7.1:創(chuàng)建目錄build。
    7.2:在build下新建目錄META-INF,把文件ejb-jar.xml、weblogic-ejb-jar.xml拷到META-INF下。
    7.3:把編譯好的class文件拷到build目錄下(此時為com/leo/Hello.class,HelloEJB.class,HelloHome.class)。
    7.4:打包成jar文件: jar -cvf hello.jar *.* 。
    7.5:再將hello.jar文件部署到weblogic服務(wù)器中。
    8、寫客戶端調(diào)用程序
    您可以從Java Client,JSP,Servlet或別的EJB調(diào)用HelloBean。
    調(diào)用EJB有以下幾個步驟:
    通過JNDI(Java Naming Directory Interface)得到EJB Home Interface
    通過EJB Home Interface 創(chuàng)建EJB對象,并得到其Remote Interface
    通過Remote Interface調(diào)用EJB方法
    以下是一個從Java Client中調(diào)用HelloBean的例子:
    package ejb.hello;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import java.util.Hashtable;
    import javax.ejb.*;
    import java.rmi.RmoteException;
    /**
    * @author Copyright (c) 2000 by Apusic, Inc. All Rights Reserved.
    */
    public class HelloClient {
        public static void main(String args[]){
            String url = "rmi://localhost:7100";
              Context initCtx = null;
              HelloHome hellohome = null;
              try {
                      Hashtable env = new Hashtable();
                      env.put(Context.INITIAL_CONTEXT_FACTORY,"com.apusic.jndi.InitialContextFactory");
                      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 {
                      Object obj=ctx.lookup("Hello");
                      HelloHome home=(HelloHome)PortableRemoteObject.narrow(obj,HelloHome.class);
                      Hello hello = hellohome.create();
                      String s = hello.getHello();
                      System.out.println(s);
             }catch(Exception e){
                      System.out.println(e.getMessage());
                      System.exit(1);
            }
        }
    }
      運行HelloClient,可得到以下輸出:
      Hello EJB

    posted on 2007-11-28 13:44 CoderDream 閱讀(2176) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    <2007年11月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    常用鏈接

    留言簿(9)

    我參與的團隊

    隨筆分類(245)

    隨筆檔案(239)

    文章分類(3)

    文章檔案(3)

    收藏夾(576)

    友情鏈接

    搜索

    •  

    積分與排名

    • 積分 - 459735
    • 排名 - 114

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 污视频在线免费观看| 免费va在线观看| 亚洲a∨无码精品色午夜| 亚洲人成影院在线无码观看| 日韩精品免费在线视频| 成人亚洲国产va天堂| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲AV人无码综合在线观看| 18以下岁毛片在免费播放| 亚洲精品国产av成拍色拍| 亚洲精品少妇30p| 四虎影院在线免费播放| 男女拍拍拍免费视频网站| 亚洲五月综合网色九月色| 国产亚洲人成网站在线观看| 久久久久久曰本AV免费免费| 九九免费久久这里有精品23| 亚洲成无码人在线观看| 亚洲综合久久夜AV | 免费阿v网站在线观看g| 国产免费内射又粗又爽密桃视频| 亚洲天堂男人影院| 亚洲成在人线av| 五月婷婷亚洲综合| 日韩欧毛片免费视频| 国产成人无码区免费网站| 日韩色视频一区二区三区亚洲| 精品亚洲成a人片在线观看少妇| 又黄又爽无遮挡免费视频| 可以免费看黄的网站| 久久精品免费一区二区三区| 老司机午夜在线视频免费观| 亚洲国产精品久久网午夜| 亚洲一区精品无码| 又粗又大又猛又爽免费视频| 黄色片在线免费观看| 一级成人a毛片免费播放| 国产精品视频全国免费观看| 国产精品亚洲专区无码唯爱网| 亚洲一区二区三区深夜天堂| 久久av无码专区亚洲av桃花岛|