成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當前位置:首頁>>開發編程>>JAVA>>新聞內容
[J2EE學習筆記02]用JBOSS 3.2發布EJB程序(3)
作者:icech 發布時間:2003-10-7 14:28:15 文章來源:weste.net

4         發布EJB程序

我們來編寫一段最簡單的“Hello World”無狀態會話Bean,我們創建的無狀態會話Bean運行在分布式對象架構里,執行著重要的任務:向客戶端返回一字符串——“Hello,World!

4.1      創建Remote接口

我們以編寫Remote接口開始,Remote接口復制了Bean“暴露”的每一個商務方法,由EJB容器實現Remote接口,實現的結果就是EJB對象。EJB對象將所有的客戶端請求委托給實際的Bean。源代碼如下:

 

Hello.java

package hello.ejb;

/**

 * Remote interface for Enterprise Bean: Hello

 */

public interface Hello extends javax.ejb.EJBObject {

/**

 * 唯一的方法hello,向客戶端返回問候。

 */

       public String hello() throws java.rmi.RemoteException;

}

4.2      實現“Hello,world!”的Bean

接下來,創建Bean本身。我們將實現一個商務方法——hello()方法,我們還增加了所需的EJB容器回調方法。程序源代碼如下“:

 

HelloBean.java

package hello.ejb;

/**

 * Bean implementation class for Enterprise Bean: Hello

 */

public class HelloBean implements javax.ejb.SessionBean {

       private javax.ejb.SessionContext mySessionCtx;

       /**

        * getSessionContext

        */

       public javax.ejb.SessionContext getSessionContext() {

              return mySessionCtx;

       }

       /**

        * setSessionContext

        */

       public void setSessionContext(javax.ejb.SessionContext ctx) {

              mySessionCtx = ctx;

       }

       /**

        * ejbActivate

        */

       public void ejbActivate() {

       }

       /**

        * ejbCreate

        */

       public void ejbCreate() throws javax.ejb.CreateException {

       }

       /**

        * ejbPassivate

        */

       public void ejbPassivate() {

       }

       /**

        * ejbRemove

        */

       public void ejbRemove() {

       }

       //

       // 商務方法

       //

       public String hello() {

        return "Hello,World!";

    }

      

}

 

4.3      創建“Hello,World!Home接口

這里編寫的Home接口詳細說明了生成和清除EJB對象方法。程序源代碼如下:

 

HelloHome.java

package hello.ejb;

/**

 * Home interface for Enterprise Bean: Hello

 */

public interface HelloHome extends javax.ejb.EJBHome {

       /**

        * Creates a default instance of Session Bean: Hello

        */

       public Hello create() throws javax.ejb.CreateException, java.rmi.RemoteException;

}

4.4      EJB部署描述

ejb-jar.xml

       helloEJB

      

             

                     Hello

                     hello.ejb.HelloHome

                     hello.ejb.Hello

                     hello.ejb.HelloBean

                     Stateless

                     Container

             

      

 

下面icech來簡單介紹一下XML部署描述的內容。

       helloEJB

 

      

 

             

        

                     Hello

 

                     hello.ejb.HelloHome

 

                     hello.ejb.Hello

 

                     hello.ejb.HelloBean

 

                     Stateless

                     Container

             

      

4.5      客戶端代碼

客戶端代碼執行以下幾個任務:

·          查找Home對象;

·          使用Home對象生成EJB對象;

·          EJB對象調用hello()方法;

·          從內存中清除EJB對象。

 

HelloClient.java

package hello.ejb;

 

import java.util.*;

import java.io.*;

 

import javax.naming.InitialContext;

import javax.rmi.PortableRemoteObject;

 

 

public class HelloClient

{

 

   public static void main(String[] args)

   {    

      try

      {

         //jndi配置,硬編碼到java中,應實現為外部屬性文件

         Properties p=new Properties();

         p.setProperty("java.naming.factory.initial",

             "org.jnp.interfaces.NamingContextFactory");

         p.setProperty("java.naming.provider.url",

             "localhost:1099");

             

         //out print jndi配置

         p.list(System.out);

       

         // Get a naming context

         InitialContext jndiContext = new InitialContext(p);

         System.out.println("Got context");

        

         // Get a reference to the Interest Bean

         //jboss默認jndi名為ejb-jar.xml中的:ejb-name

         Object ref  = jndiContext.lookup("Hello");

         System.out.println("Got reference");

        

         // Get a reference from this to the Bean"s Home interface

         HelloHome home = (HelloHome)

         PortableRemoteObject.narrow(ref, HelloHome.class);

        

         // Create an Hello object from the Home interface

         Hello hello = home.create();

        

         // call the hello() method

         System.out.println(hello.hello());

      }

      catch(Exception e)

      {

         System.out.println(e.toString());

      }

   }

}

 


最新更新
·Java開發技術十年的回顧與展
·關于TOMCAT主目錄與虛擬目錄
·用java程序調用ffmpeg執行視
·JavaBean與Enterprise JavaB
·Java開發人員的十大戒律
·JavaFX Script將終結AJAX?還
·解決IE中所有png圖片透明問題
·JSP解決地址欄中傳遞中文字符
·Eclipse五歲了:Java程序員的
·審查Java代碼的十一種常見錯
相關信息
·在JBoss中配置多個數據庫和數據源
·Jboss3.0.7在Jbuilder7中的配置
·[圖]用JBOSS 3.2發布EJB程序(4)
·[圖]用JBOSS 3.2發布EJB程序(2)
·[圖]用JBOSS 3.2發布EJB程序(1)
放生
愚愛
夠愛
觸電
白狐
心跳
知足
犯錯
降臨
分愛
葬愛
光榮
畫心
火花
稻香
愛得起
這種愛
大丈夫
花蝴蝶
二缺一
小酒窩
下雨天
右手邊
安靜了
棉花糖
明天過后
邊做邊愛
擦肩而過
沒有如果
懷念過去
等一分鐘
越來越愛
寂寞暴走
你的承諾
Nobody
我們都一樣
永遠在身邊
天使的翅膀
原諒我一次
i miss you
原諒我一次
吻的太逼真
姑娘我愛你
做你的愛人
一定要愛你
飛向別人的床
愛上別人的人
感動天感動地
心在跳情在燒
不潮不用花錢
如何能把你忘記
即使知道要見面
愛上你是一個錯
最后一次的溫柔
愛上你是我的錯
怎么會狠心傷害我
親愛的那不是愛情
傷心時候可以聽情歌
愛上你等于愛上了錯
不是因為寂寞才想你
主站蜘蛛池模板: 温宿县| 银川市| 望城县| 比如县| 伊吾县| 灵石县| 巴塘县| 武山县| 军事| 蛟河市| 鄂托克前旗| 永顺县| 十堰市| 长宁县| 新乡县| 涡阳县| 名山县| 黎城县| 石河子市| 满城县| 漳州市| 乌海市| 平果县| 宁国市| 巴彦淖尔市| 义乌市| 青海省| 张家界市| 穆棱市| 藁城市| 石家庄市| 芜湖县| 辽阳市| 清苑县| 康平县| 修文县| 仙游县| 盘锦市| 都江堰市| 闽侯县| 广平县|