亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Beans入門必讀之無狀態會話bean基礎

2019-11-18 11:49:56
字體:
來源:轉載
供稿:網友

  無狀態會話bean是可以模擬業務過程的組件,它可以在單獨的方法調用中被執行。Stateless session Bean不能夠維持一個調用客戶的狀態,在一個方法調用中,Stateless Session Bean 可以維持調用客戶的狀態,當方法執行完,狀態不會被保持。在調用完成后,Stateless Session Bean被立即釋放到緩沖池中,所以Stateless Session Bean具有很好的伸縮性,可以支持大量用戶的調用。
  無狀態會話beans的特點
  沒有對話狀態
  無狀態會話bean可以擁有內部狀態,它們的狀態不能為非凡的客戶端定制。這意味著所有的無狀態bean對于客戶端是無差別的,客戶端也不能分離它們。客戶端必須將所有的必需的客戶端數據作為業務邏輯方法的參數傳給無狀態bean,無狀態bean可以從外部資源(例如數據庫)獲得所需的數據。
  初始化無狀態bean只有一種方法
  我們知道會話bean的初始化調用ejbCreate()方法,因為無狀態會話bean不能夠在方法調用之間保留狀態,因此它也不能在客戶端給ejbCreate()調用傳遞數據以后保留狀態。調用不帶參數的ejbCreate()或create()。
  容器可以聚集和重用無狀態會話Bean
  構建“Hello,World!”遠程接口
  package com.wiley.compBooks.roman.session.helloworld;
  import javax.ejb.*;
  import java.rmi.RemoteException;
  import java.rmi.Remote;
  /**
  * This is the HelloBean remote interface.
  *
  * This interface is what clients Operate on when
  * they interact with EJB objects. The container
  * vendor will implement this interface; the
  * implemented object is the EJB object, which
  * delegates invocations to the actual bean.
  */
  public interface Hello extends EJBObject {
  /**
  * The one method - hello - returns a greeting to the client.
  */
  public String hello() throws java.rmi.RemoteException;
  }
  Source 4.1 Hello.java.
  Hello接口繼續了EJBObject接口,EJBObject繼續Remote接口,因此hello可以拋出rmi異常。
  下面建立bean,實現業務方法:hello()。
  他實現了javax.ejb.SessionBean接口
  package com.wiley.compBooks.roman.session.helloworld;
  import javax.ejb.*;
  /**
  * Demonstration stateless session bean.
  */
  public class HelloBean implements SessionBean {
  //
  // EJB-required methods
  //
  public void ejbCreate() {
  System.out.  }
  public void ejbRemove() {
  System.out.println("ejbRemove()");
  }
  public void ejbActivate() {
  System.out.println("ejbActivate()");
  }
  public void ejbPassivate() {
  System.out.println("ejbPassivate()");
  }
  public void setSessionContext(SessionContext ctx) {
  System.out.println("setSessionContext()");
  }
  //
  // Business methods
  //
  public String hello() {
  System.out.println("hello()");
  return "Hello, World!";
  }
  }
  Source 4.2 HelloBean.java
  注重:不需要實現自己的遠程接口,初始化方法不帶參數。破壞bean時,使用比較簡單的ejbRemove()方法。ejbActivate() 和ejbPassivate()方法不需應用在無狀態會話bean,因此,這兩個方法為空。
  建立“Hello,World!”Home接口
  Home接口繼續了javax.ejb.EJBHome。Home接口為EJB對象擴展了一個不帶參數的方法——create()方法。
  package com.wiley.compBooks.roman.session.helloworld;
  import javax.ejb.*;
  import java.rmi.RemoteException;
  /**
  * This is the home interface for HelloBean. This interface
  * is implemented by the EJB Server's glue-code tools - the
  * implemented object is called the Home Object and serves
  * as a factory for EJB Objects.
  *
  * One create() method is in this Home Interface, which
  * corresponds to the ejbCreate() method in HelloBean.
  */
  public interface HelloHome extends EJBHome {
  /*
  * This method creates the EJB Object.
  *
  * @return The newly created EJB Object.
  */
  Hello create() throws RemoteException, CreateException;
  }
  creat方法拋出了a java.rmi.RemoteException和aavax.ejb.CreateException.異常。
  寫配置描述符
  在EJB1.0中,配置描述符是作為文件存儲在磁盤上的java對象。在EJB1.1種,配置描述符是一個
xml文檔。EJB容器或IDE環境應該提供生成配置描述符的工具。
  配置描述符的設置
  bean home的名字
  企業級bean類名
  home接口類名
  遠程接口類名
  Re-entrant
  狀態或無狀態
  會話時間
  
  
  
  
  
  HelloBean的配置描述符
  環境屬性
  bean通過使用此信息來適應不同的非凡環境。
  Ejb-jar文件
  我們需要將我們所需要的文件打包成Ejb-jar文件。
  企業級的bean
  遠程接口
  home接口
  配置描述符,包括屬性
  以上這些必須被包含進Ejb-jar文件。在EJB1.0中,jar文件理有一個文本文件的列表。它表示jar的具體信息。它用來鑒別哪個企業bean在Ejb-jar文件。在EJB1.1中,XML文件包含了所有的必要信息。
  生成Ejb-jar文件
  jar cmf ../manifest HelloWorld.jar *
  配置bean
  最后,我們還需要在Ejb容器中配置bean。經常執行一下步驟:
  Ejb-jar文件的檢驗
  容器工具來產生EJB對象和home對象
  容器工具來生成RMI所需的stubs和skeletons
  寫無狀態bean的客戶代碼
  package com.wiley.compBooks.roman.session.helloworld;
  import javax.ejb.*;
  import javax.naming.*;
  import java.rmi.*;
  import java.util.Properties;
  /**
  * This class is an example of client code that invokes
  * methods on a simple stateless session bean.
  */
  public class HelloClient {
  public static void main(String[] args) {
  try {
  /*
  * Get System properties for JNDI initialization
  */
  Properties props = System.getProperties();
  /*
  * Form an initial context
  */
  Context ctx = new InitialContext(props);
  /*
  * Get a reference to the home object
  * (the factory for EJB objects)
  */
  HelloHome home = (HelloHome) ctx.lookup("HelloHome");
  /*
  * Use the factory to create the EJB Object
  */
  Hello hello = home.create();
  /*
  * Call the hello() method, and print it
  */
  System.out.println(hello.hello());
  /*
  * Done with EJB Object, so remove it
  */
  hello.remove();
  } catch (Exception e) {
  e.printStackTrace();
  }
  }
  }
  客戶端代碼執行了一下任務:
  定位home接口
  使用home接口建立EJB對象
  調用EJB對象上的hello()
  移走EJB對象
  運行
  首先運行應用服務器。對于BEA的WebLogic,執行
  t3server
  客戶端執行:
  java -Djava.naming.factory.initial=
  weblogic.jndi.TengahInitialContextFactory
  -Djava.naming.provider.url=
  t3://localhost:7001
  com.wiley.compBooks.roman.session.helloworld.HelloClient
  服務端輸出:
  setSessionContext()
  ejbCreate()
  hello()
  ejbRemove()
  客戶端輸出:
  Hello, World!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲午夜国产成人av电影男同| 姬川优奈aav一区二区| 日韩精品在线播放| 色偷偷偷亚洲综合网另类| 91成人国产在线观看| 亚洲午夜精品久久久久久性色| 亚洲欧美精品一区二区| 亚洲天堂男人天堂女人天堂| 日韩美女视频中文字幕| 欧美性猛交xxxx富婆弯腰| 国产精品女人久久久久久| 色婷婷综合成人av| 国产视频自拍一区| 国产一区深夜福利| 日韩国产精品亚洲а∨天堂免| 亚洲欧美日韩区| 国产成人精品视频在线| 久久人人97超碰精品888| 日韩精品高清视频| 欧美又大粗又爽又黄大片视频| 国产精品美女久久久久av超清| 久久成人精品一区二区三区| 亚洲美女在线视频| 91理论片午午论夜理片久久| 欧美与欧洲交xxxx免费观看| 亚洲自拍小视频| 在线成人免费网站| 久久久久久久久久亚洲| 国产日本欧美一区二区三区在线| 色妞在线综合亚洲欧美| 欧美日韩在线视频一区二区| 欧美激情视频免费观看| 亚洲女性裸体视频| 日韩欧美国产激情| 国产精品香蕉在线观看| 欧美多人爱爱视频网站| 欧美美女操人视频| 国产99久久精品一区二区| 深夜福利国产精品| 精品视频久久久| 久久免费精品视频| 日韩av在线网址| 欧美大片在线看| 国产精品丝袜久久久久久不卡| 麻豆国产精品va在线观看不卡| 最近2019中文字幕大全第二页| 中文欧美日本在线资源| 欧美电影《睫毛膏》| 国产精品美女网站| 欧美成人性色生活仑片| 欧美激情在线播放| 少妇高潮 亚洲精品| 久久中文精品视频| 国产一区二区三区毛片| 欧美老肥婆性猛交视频| 日韩成人激情视频| 久久久久亚洲精品成人网小说| 国产精品十八以下禁看| 欧美中在线观看| 欧美精品福利在线| 欧美精品激情在线观看| 精品人伦一区二区三区蜜桃免费| 国产精品高潮在线| 国产亚洲精品久久久久久| 美女999久久久精品视频| 亚洲无限av看| 亚洲精品一区二区三区不| 91精品视频播放| 在线成人免费网站| 欧美激情网站在线观看| 亚洲理论电影网| 57pao国产成人免费| 中文字幕久久久| 国产精品第一区| 日韩精品免费电影| 精品久久久久久久久久| 成人免费网站在线看| 日韩国产精品一区| 夜色77av精品影院| 国产精品白丝jk喷水视频一区| 久久国产精品首页| 欧美另类极品videosbest最新版本| 国产成人avxxxxx在线看| 韩国三级电影久久久久久| 欧美日在线观看| 日韩禁在线播放| 亚洲japanese制服美女| 日韩国产欧美精品一区二区三区| 欧美精品一区在线播放| 久久久av电影| 78m国产成人精品视频| 日韩美女在线观看| 国内成人精品一区| 九九九久久国产免费| 国产精品在线看| 5566日本婷婷色中文字幕97| 97国产真实伦对白精彩视频8| 伊人久久免费视频| 欧美国产日本高清在线| 亚洲性生活视频在线观看| 欧美视频一二三| 亚洲第一精品自拍| 亚洲精品久久久久久下一站| 精品欧美aⅴ在线网站| 青草青草久热精品视频在线网站| 欧美与黑人午夜性猛交久久久| 欧美精品videosex牲欧美| 国产91精品在线播放| 久久久久国产视频| 亚洲区免费影片| 亚洲综合日韩在线| 久久中文字幕在线视频| 永久免费毛片在线播放不卡| 国产亚洲精品成人av久久ww| 日韩av免费在线播放| 国产精品热视频| 亚洲人成在线观看| 性色av一区二区三区在线观看| 亚洲aⅴ日韩av电影在线观看| 亚洲国产精品久久久| 亚洲精品视频在线观看视频| 日韩小视频在线观看| 国产精品成人v| 欧美性69xxxx肥| 性欧美xxxx| 一区二区三区四区视频| 国产精品偷伦免费视频观看的| 亚洲精品免费av| 在线观看精品国产视频| 欧美三级欧美成人高清www| 亚洲第一区中文99精品| 亚洲国产成人久久综合| 亚洲全黄一级网站| 中文字幕亚洲精品| 国外成人在线播放| 亚洲爱爱爱爱爱| 国产精品高潮视频| 久久久国产一区| 91免费福利视频| 亚洲性69xxxbbb| 91美女福利视频高清| 中文一区二区视频| 夜夜躁日日躁狠狠久久88av| 欧美重口另类videos人妖| 久久久精品视频成人| 国产自产女人91一区在线观看| 欧美日韩国产999| 欧美成人免费小视频| 992tv在线成人免费观看| 欧美亚洲成人网| 国产精自产拍久久久久久| 北条麻妃久久精品| 日韩极品精品视频免费观看| 久久夜色精品国产欧美乱| 一区二区国产精品视频| 精品国产91乱高清在线观看| 亚洲欧洲国产一区| 日韩在线视频观看正片免费网站| 国产一区二区视频在线观看| 亚洲一区二区三区视频| 国产做受高潮69| 在线观看久久久久久| 日韩中文字幕在线播放| 性色av一区二区三区在线观看|