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

當前位置:首頁>>開發編程>>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
原諒我一次
吻的太逼真
姑娘我愛你
做你的愛人
一定要愛你
飛向別人的床
愛上別人的人
感動天感動地
心在跳情在燒
不潮不用花錢
如何能把你忘記
即使知道要見面
愛上你是一個錯
最后一次的溫柔
愛上你是我的錯
怎么會狠心傷害我
親愛的那不是愛情
傷心時候可以聽情歌
愛上你等于愛上了錯
不是因為寂寞才想你
主站蜘蛛池模板: 都江堰市| 安义县| 稷山县| 准格尔旗| 石柱| 虎林市| 柳河县| 阳谷县| 闽清县| 民县| 鹤岗市| 和静县| 哈巴河县| 元阳县| 民乐县| 依兰县| 巴塘县| 清徐县| 大竹县| 平塘县| 阿尔山市| 九龙坡区| 贺兰县| 肇东市| 大石桥市| 田林县| 常德市| 郸城县| 高清| 牟定县| 武义县| 金坛市| 介休市| 荆州市| 通化市| 九江市| 镇巴县| 霸州市| 沈丘县| 安乡县| 博野县|