Message-Driven Bean 編寫規則


以 下是到目前所談及的主題為止,一些Message-Driven Bean撰寫程式碼時,所要知道的瑣瑣碎碎規則,部份規則其實與 Session Bean 編寫規則 類似:
  • 實作傾聽介面...
    • 必須使用implements直接實作MessageListener介面,或間接 使用Annotation、部署描述實作傾聽介面
    • 實作傾聽介面的方法必須是public、非static
    • 不可以丟出javax.rmi.RemoteException,這會造成Bean 停止運作
  • Message-Driven Bean實作....
    • 一定是具體類別,不能是 final或abstract
    • 必須宣告為public類別
    • 必須有無參數建構子
    • 可以是某個POJO的子類別
    • 不能是某個Message-Driven Bean的子類別
  • @MessageDriven...
    • name屬性用來指定Bean名稱,有 的容器會將name屬性與JNDI名稱綁定在一起
    • Glassfish上,單獨指定name屬性,則您要用Bean的服務介面之全名 (Full-qualified name)方可取得Bean
    • mappedName屬性是廠商特定屬性,有的容器(像Classfish)會將mappedName 屬性與JNDI名稱綁定在一起
    • 屬性messageListenerInterface用來指定要實作哪個 MessageListener,如此可不用implements來實作MessageListener介面,實作時有個onMessage方法即可