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

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

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

    大鳥的學習樂園
    路漫漫其修遠兮,吾將上下而求索
    posts - 26,comments - 27,trackbacks - 0

     

    剛剛開始學習JBoss,學習了一個入門級的小例子,對于剛接觸JBoss和Eclipse的菜鳥來說很有幫助的,現在把我的試驗過程介紹一下。
    首先,打開Eclipse,新建——其它——JBoss IDE——J2EE Projects——J2EE 1.4 Projects
    下一步
    填入項目名稱:HelloWorld
    項目內容可以選擇使用缺省值或者自己制定存儲空間
    下一步
    在源選單下,添加文件夾,分別命名為j2src(存放java文件)和src(存放部署文件),缺省輸出文件夾改為:HelloWorld/bin
    完成

    在包資源管理器中,右鍵單擊j2src,選擇新建——包,輸入包名:sample.server。

    右鍵單擊sample.server,選擇新建——接口,輸入接口名字:HelloWorld,此為遠程接口,是指對于客戶端而言所能看到的調用接口,該接口內容為:

    /**
     *HelloWorld.java
     */
    package sample.server;

    import javax.ejb.EJBObject;

    /**
     * @author Administrator
     *
     * TODO 要更改此生成的類型注釋的模板,請轉至
     * 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板
     */
    public interface HelloWorld extends EJBObject {
     public String hello() throws java.rmi.RemoteException;
    }

    同樣的,新建Home接口HelloWorldHome,我們可以把Home接口看做是一個制造EJB的工廠,它告訴EJB容器:“我的客戶要我生成一個EJB,現在我把這個任務交給你啦!”
    /**
     * HelloWorldHome.java
     */
    package sample.server;
    import javax.ejb.EJBHome;
    /**
     * @author Administrator
     *
     * TODO 要更改此生成的類型注釋的模板,請轉至
     * 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板
     */
    public interface HelloWorldHome extends EJBHome {
     HelloWorld create() throws java.rmi.RemoteException,
       javax.ejb.CreateException;
    }
    下面就是EJB的實現,右鍵單擊sample.server,新建——其它——JBoss IDE——EJB Components——Session Bean,輸入名稱:HelloWorldBean,類型為Stateless,Remote,選擇創建來自超類的構造函數,繼承的抽象方法,ejbCreate() method。完成。

    /**
     * HelloWorldBean.java
     */

    package sample.server;

    import java.rmi.RemoteException;

    import javax.ejb.EJBException;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;

    import javax.ejb.CreateException;

    /**
     * @ejb.bean name="HelloWorld"
     *           display-name="Name for HelloWorld"
     *           description="Description for HelloWorld"
     *           jndi-name="ejb/HelloWorld"
     *           type="Stateless"
     *           view-type="remote"
     */
    public class HelloWorldBean implements SessionBean {

     /**
      *
      */
     public HelloWorldBean() {
      super();
      // TODO 自動生成構造函數存根
     }

     /* (非 Javadoc)
      * @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext)
      */
     public void setSessionContext(SessionContext ctx)
      throws EJBException,
      RemoteException {
      // TODO 自動生成方法存根

     }

     /* (非 Javadoc)
      * @see javax.ejb.SessionBean#ejbRemove()
      */
     public void ejbRemove() throws EJBException, RemoteException {
      // TODO 自動生成方法存根

     }

     /* (非 Javadoc)
      * @see javax.ejb.SessionBean#ejbActivate()
      */
     public void ejbActivate() throws EJBException, RemoteException {
      // TODO 自動生成方法存根

     }

     /* (非 Javadoc)
      * @see javax.ejb.SessionBean#ejbPassivate()
      */
     public void ejbPassivate() throws EJBException, RemoteException {
      // TODO 自動生成方法存根

     }

     /**
      * Default create method
      *
      * @throws CreateException
      * @ejb.create-method
      */
     public void ejbCreate() throws CreateException {
      // TODO Auto-generated method stub
     }
     public String hello()
     {
      System.out.println("hello()");
      return "Hello,world";
     }
    }
    服務器端程序編好,下一步就要做部署工作了。

    右鍵選擇src,新建目錄META-INF,在該目錄下,新建——其它——JBoss-IDE——Descriptors——EJB 2.1 Deployment Descriptor,默認名字為ejb-jar.xml,完成。
    ejb-jar.xml:

    《?xml version="1.0" encoding="UTF-8"?》
    《ejb-jar version="2.1"
     xmlns="  xmlns:xsi="  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
      《ejb-jar》
    《enterprise-beans》
      《session》
       《ejb-name》HelloWorldBean《/ejb-name》
       《home》sample.server.HelloWorldHome《/home》
       《remote》sample.server.HelloWorld《/remote》
       《ejb-class》sample.server.HelloWorldBean《/ejb-class》
       《session-type》Stateful《/session-type》
       《transaction-type》Bean《/transaction-type》
      《/session》
     《/enterprise-beans》
    《/ejb-jar》

    (備注:在此,由于網頁顯示的原因,將<>符號改成了《》,所以,在實際應用中應改為<>,以正常工作。同時,ejb-jar.xml開頭的版本標記文字會因jboss版本不同而不同,希望大家注意)

    這樣我們就完成了一個簡單的會話EJB的編寫,下一步是打包。
    同時選擇j2src和src兩個目錄,右鍵單擊選擇導出——jar——選擇導出目標,可以放在定義的HelloWorld目錄下,起個名字叫HelloWorld.jar,則會在包資源管理器中看到一個文件HelloWorld.jar。

    光有EJB,沒有客戶端,對我們來說毫無用處,所以下一步我們就要編寫客戶端程序。
    同樣的,在j2src下創建包sample.client。
    在該包下新建類,類名為HelloWorldClient,添加接口:sample.server.HelloWorld,
    /**
     * HelloWorldClient.java
     */

    sample.server.HelloWorldHome。

    package sample.client;

    import java.util.Hashtable;

    import javax.naming.Context;
    import javax.naming.InitialContext;

    import sample.server.HelloWorld;
    import sample.server.HelloWorldHome;

    /**
     * @author Administrator
     *
     * TODO 要更改此生成的類型注釋的模板,請轉至
     * 窗口 - 首選項 - Java - 代碼樣式 - 代碼模板
     */
    public class HelloWorldClient{
     public static void main(String [] args){
      Hashtable env = new Hashtable();
      env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
      env.put(Context.PROVIDER_URL,"localhost:1099");
    /**
     * 默認是把服務器端EJB部署在本機上,如果部署在其它機器上,比如192.168.0.1,則將localhost  * 改為192.168.0.1即可
     */
      env.put("Java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
      try{
       Context ctx = new InitialContext(env);
       Object obj = ctx.lookup("HelloWorldBean");
       HelloWorldHome home =(HelloWorldHome)javax.rmi.PortableRemoteObject.narrow(
         obj, HelloWorldHome.class );
       HelloWorld helloWorld = home.create();
       System.out.println(helloWorld.hello());
       helloWorld.remove();
      }catch(Exception e){
       e.printStackTrace();
       System.out.println("Exception:"+e.getMessage());
      }   
     }
    }

    下面就可以編譯運行了。
    手動啟動JBoss,直接運行JBoss\bin\目錄下的run.bat即可,這個過程時間長短跟計算機的配置有關,配置高的計算機幾秒鐘就可以了,比較傳統的計算機則需要等上1分多鐘甚至更長,不過你不需要專門等著它的運行,你雙擊run.bat后,不用管它,你可以先做一些其他的事情,比如給mm發條短信啊什么的,等你發完短信后,你會發現JBoss已經運行成功,并會告訴你啟動JBoss花了多長時間:Started in 1m:36s:870ms,呵呵,我的機器比較傳統哈。
    選擇包資源管理器中的HelloWorld.jar,右鍵單擊選擇Deployment——Deploy to,
    選擇jboss 4.0(default)[file:/D:/jboss4/server/default/deploy/]
    則系統會自動把HelloWorld.jar文件拷貝到jboss的/server/default/deploy/目錄下,jboss的運行窗口將出現
    10:09:50,679 INFO  [EjbModule] Deploying HelloWorldBean
    10:09:52,051 INFO  [org.jboss.ejb.EJBDeployer] Deployed: file:/D:/jboss4/server/default/deploy/HelloWorld.jar
    服務器端運行成功
    右鍵選擇HelloWorldClient.java,選擇運行——運行,在左邊選擇java應用程序下的HelloWorldClient,右邊選擇類路徑,在引導程序條目下添加外部JAR,分別jboss的client目錄下的jboss-j2ee.jar、log4j.jar、jboss-client.jar。然后單擊運行,就會看到底下控制臺上顯示的“Hello,World”,哈哈,成功了,這可跟一般的“HelloWorld”不太一樣哦。

    主站蜘蛛池模板: 久久精品亚洲综合专区| 亚洲国产综合人成综合网站| 亚洲阿v天堂在线| 国产免费区在线观看十分钟| 亚洲av无码不卡私人影院| 亚洲av无码偷拍在线观看| 四虎影视在线永久免费看黄| 国产成人综合亚洲| 亚洲精品第一国产综合境外资源| 有色视频在线观看免费高清在线直播 | 一个人看的www在线观看免费| 内射干少妇亚洲69XXX| 在线观看www日本免费网站| 亚洲冬月枫中文字幕在线看| 成人免费视频网站www| 亚洲中文字幕乱码熟女在线| 国产成人啪精品视频免费网| 新最免费影视大全在线播放| 国产精品亚洲精品日韩已满| 无码精品人妻一区二区三区免费看| 久久精品国产亚洲av成人| 18禁男女爽爽爽午夜网站免费| 亚洲丰满熟女一区二区v| 毛片免费视频播放| 在线91精品亚洲网站精品成人| 国产成人毛片亚洲精品| 99视频免费播放| 亚洲色一区二区三区四区| 亚洲av中文无码| 日日麻批免费40分钟无码| 午夜在线a亚洲v天堂网2019 | 中文字幕亚洲不卡在线亚瑟| 久久精品免费观看国产| 亚洲日本久久久午夜精品| 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲成av人在线观看网站| 亚洲综合网站色欲色欲| 1000部禁片黄的免费看| 一级毛片成人免费看a| 91亚洲国产在人线播放午夜| 国产婷婷高清在线观看免费 |