日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 默认站点!

默认站点

當前位置: 首頁 >

bean创建异常_快速提示:消息驱动Bean中的异常处理

發布時間:2023/12/3 22 豆豆
默认站点 收集整理的這篇文章主要介紹了 bean创建异常_快速提示:消息驱动Bean中的异常处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

bean創建異常

讓我們快速回顧一下關于消息驅動Bean的特殊處理。

MDB的入口點是重寫的onMessage方法。 它不提供引發檢查異常的作用域,因此,如果要處理錯誤情形,則需要從代碼中傳播未檢查異常(java.lang.RuntimeException的子類)。

異常類型

EJB規范定義了兩類異常,并且容器根據明確陳述的語義(同樣,在EJB規范中)將一種與另一種區別。

應用例外

如果您拋出不是java.rmi.RemoteException或其子類的已檢查異常(對于MDB而言是不可能的,但其他EJB可以使用此異常),或者它不是以@ javax.ejb.ApplicationException注釋的RuntimeException(未檢查),則該容器是將其視為應用程序異常。 因此,如果由@ javax.ejb.ApplicationException rollback屬性指定,它將回滾事務,并保留MDB實例以供重用–這是非常重要的注意事項。

@ApplicationException(rollback = true) public class InvalidCustomerIDException extends RuntimeException {public InvalidCustomerIDException(){super();} }

系統異常

如果拋出java.rmi.RemoteException (已檢查的異常)或其子類,或者拋出了未使用@ javax.ejb.ApplicationException注釋的RuntimeException(未檢查),則容器會將其視為系統異常。 結果,它執行某些操作,例如事務回滾,并丟棄MDB實例(這很關鍵) 。

public class SystemExceptionExample extends Exception {public SystemExceptionExample(){super();} }

重要的是要考慮到MDB實例的丟棄 。 如果發生系統異常,容器將始終丟棄該實例–因此,請確保您出于預期的原因使用這些異常。 如果您使用的是應用程序異常,并且它們是未經檢查的(對于MDB,則必須是它們),請確保使用@ javax.ejb.ApplicationException對其進行注釋–這將確保不丟棄 MDB實例本身。

在高負載下,您可能希望池中有盡可能多的MDB,并且希望避免MDB實例退出服務狀態。 明智的異常處理可以幫助您實現此目標。 就像用@ javax.ejb.ApplicationException注釋異常類并將其余的留給容器一樣簡單:-)

參考資料

EJB(3.2)規范是465頁的PDF,乍一看可能令人生畏,但它仍然是一個很好的資源,而且并不難掌握。 如果您想更詳細地了解異常處理語義,請查閱第9章 ,該主題專門針對該主題。

干杯!

翻譯自: https://www.javacodegeeks.com/2015/06/quick-tip-exception-handling-in-message-driven-beans.html

bean創建異常

總結

以上是默认站点為你收集整理的bean创建异常_快速提示:消息驱动Bean中的异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得默认站点網站內容還不錯,歡迎將默认站点推薦給好友。