posts - 0, comments - 77, trackbacks - 0, articles - 356
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          EJB初學日記(1)

          Posted on 2007-09-18 21:27 semovy 閱讀(189) 評論(0)  編輯  收藏 所屬分類: EJB

          今天終于還是下定決心看看EJB,看著SPRING看了兩天,覺得一點頭緒都沒有,我不是一個講究速成的人,但是總是感覺和它們的理念不太一樣,唉,真可憐,都怪自己,初學JAVA的時候就把J2SE看得太重了.

          在學習了J2SE一整年之后,發現JAVA的應用還遠遠沒有掌握,我學習一年的結果就是剛剛對JAVA有所了解而已,回首這一年的路,挺艱難的,但是現在以一個過來人的姿態去看的時候,我又學得很慶幸.因為我沒有放棄,在我學習條件最艱苦的時候,在我最無助的時候我都沒有放棄.曾經記得為了想一個小小的程序,為了實現一個小小的功能,在那里苦思冥想,想得都想吐了,還記得半夜從夢中醒來的時候,腦子里滿是程序代碼,甚至做夢的時候也在編程序,想算法.就這樣,一年,我磕磕碰碰的走過來了.

          一年后的今天,我將重新站在一個全新的起點上:J2EE,面全企業的應用,希望以后心態能像一年前一樣.踏踏實實地走過.一步一個腳印.記得一年前,我剛學JAVA時,喜歡寫學習日記,喜歡把自己不懂的,以及當天收獲的,還有對一些程序的理解和看法記下來,并且過一段時間就去看以前寫的學習日記,那時候經常會發現自己有所進步.那種感覺,真的很好.

          今天算我第一天,我下面把我今天所看到的,寫下來,以及自己不太了解的地方寫下來,做為一個初學者最真實的心理反應和想法,也為自己J2EE之路留下些紀念.

          今天下載了黎活明的EJB3.0實例教程,學了如何裝JBoss4.0,第一次我下載的是免安裝版,直接解壓縮就可以用了,但是一直都配置不好那個EJB的應用,后來,刪掉重新按照書上的地址下載了一個安裝版的,并按照介始的順序和方法安裝了一遍,一布署,呵,真的可以了.看到網頁打開的一霎那,真的感覺很有成就感,雖然應用都是別人寫的.

          由于此書用的IDE是Eclipse,可是我用的IDE是NetBeans,所以有些地方就實踐不了了,但是能實踐的,我都盡量會去實踐一下,哪怕是抄代碼,我也會親手抄一遍.我覺得這對我們初學者來說有很大的幫助.

          今天學的是會話BEAN,有狀態會話BEAN和無狀態會話BEAN
          聲明接口的代碼

           

          /*   
           * HelloWorld.java   
           *   
           * Created on 2006年12月7日, 下午9:26   
           *   
           * To change this template, choose Tools | Template Manager   
           * and open the template in the editor.   
           
          */   
             
          package lbf.demo;    
             
          /**   
           *   
           * 
          @author lbf   
           
          */   
          public interface HelloWorld {    
                  
              
          /** Creates a new instance of HelloWorld */   
              
          public String sayHello(String who);    
                  
          }   

          實現接口的代碼

          /*   
           * HelloWorldBean.java   
           *   
           * Created on 2006年12月7日, 下午9:27   
           *   
           * To change this template, choose Tools | Template Manager   
           * and open the template in the editor.   
           
          */   
             
          package lbf.demo.impl;    
             
          /**   
           *   
           * 
          @author lbf   
           
          */   
          import lbf.demo.*;    
          import javax.ejb.*;    
          @Stateless   
          @Remote({HelloWorld.
          class})   //表示是遠程調用 
          public class HelloWorldBean implements HelloWorld {    
                  
              
          /** Creates a new instance of HelloWorldBean */   
              
          public HelloWorldBean() {    
              }    
              
          public String sayHello(String who){    
                  
          return who+"說:這是我的第一個EJB東東!!";    
              }    
          }    

          打包成JAR文件以后,放到JBOSS_HOME/server/all/deploy下面就可以了,JBOSS支持熱布置,這一點和TOMCAT一樣

          只是兩者的目錄結構有一點不一樣而已,并且它也支持WAR布署.同樣也是復制到JBOSS_HOME/server/all/deploy下面

          用ctx.lookup("HelloWorldBean/remote"); 來查找綁定的BEAN,一般命名規則是

          在這里我要重點說明一下EJB JNDI名稱默認的命名規則,命名規則如下:
          1> 如果EJB應用打包成后綴為*.ear 的發布文件,默認的 JNDI 名稱是
          訪問本地接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local
          訪問遠程接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote
          例:如果HelloWorld應用打包成HelloWorld.ear 文件,訪問她遠程接口的 JNDI 名是:
          HelloWorld/HelloWorldBean/remote 
           
          2> 如果EJB應用打包成后綴為*.jar 的發布文件,  默認的 JNDI 名稱是
          訪問本地接口:EJB-CLASS-NAME/local 
          訪問遠程接口:EJB-CLASS-NAME/remote
          例: HelloWorld應用打包成HelloWorld.jar 文件,訪問她遠程接口的 JNDI名稱是:HelloWorldBean/remote
          另外有一點要注意:EJB-CLASS-NAME 是不帶包名的,如 com.foshanshop.ejb3.impl.HelloWorldBean只需取
          HelloWorldBean。
          目前網上很多教材獲取JNDI名的方式都過時了,如:
          HelloWorld helloworld = (HelloWorld) ctx.lookup(HelloWorld.class.getName());

          stateless每次查找都會返回同一個BEAN,而stateful每次查找都會產生一個新的BEAN,用來保存特定的客戶會話

          那按照上面的命名規則,豈不是很容易生成相同的名字的BEAN?因為它的名字那么短,如何避免這種情況呢.EJB應該有解決的辦法吧.看以后吧

          希望以后的日記中能搞清楚這個問題

          主站蜘蛛池模板: 杨浦区| 边坝县| 和田县| 宁城县| 浏阳市| 麦盖提县| 阳新县| 上饶县| 栾城县| 和平区| 四川省| 双峰县| 九江市| 徐汇区| 白沙| 都江堰市| 吉木萨尔县| 迭部县| 怀宁县| 澳门| 怀宁县| 莲花县| 盐亭县| 仪征市| 略阳县| 原平市| 南乐县| 蓬安县| 文安县| 邯郸市| 清苑县| 日照市| 昭平县| 若尔盖县| 德江县| 永城市| 泰来县| 武川县| 新平| 天水市| 麟游县|