以 下是到目前所談及的主題為止,一些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方法即可