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

當前位置:首頁>>開發編程>>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
原諒我一次
吻的太逼真
姑娘我愛你
做你的愛人
一定要愛你
飛向別人的床
愛上別人的人
感動天感動地
心在跳情在燒
不潮不用花錢
如何能把你忘記
即使知道要見面
愛上你是一個錯
最后一次的溫柔
愛上你是我的錯
怎么會狠心傷害我
親愛的那不是愛情
傷心時候可以聽情歌
愛上你等于愛上了錯
不是因為寂寞才想你
主站蜘蛛池模板: 阳信县| 五台县| 永定县| 伊川县| 临邑县| 三亚市| 聂拉木县| 富阳市| 水城县| 辰溪县| 休宁县| 个旧市| 曲松县| 江阴市| 徐闻县| 朝阳区| 孟州市| 通渭县| 绥中县| 若尔盖县| 浙江省| 黑龙江省| 丰原市| 乌拉特中旗| 南召县| 扶沟县| 宁强县| 岳阳县| 潮安县| 获嘉县| 特克斯县| 城固县| 阿勒泰市| 祁连县| 太和县| 广元市| 丰镇市| 建阳市| 隆安县| 汝城县| 吕梁市|