我在使用AspectJ在EJB環境中執行方法之前執行訪問檢查,因此我在攔截具有around通知的方法之前攔截控制流(我知道也有EJB攔截器)。如果訪問檢查失敗,我拋出一個AccessDeniedException。不幸的是,我得到的是一個EJBException,其原因是「AccessDeniedException」。我怎樣才能規避這種行爲?我在方法執行前拋出一個AccessDeniedException,但得到一個EJBException
1
A
回答
2
這是由系統和應用程序異常之間的差異造成的。這些大致對應於未檢查和檢查的例外。
他們每個人都有一定的屬性。系統異常將被封裝在一個EJBException中,發生異常的bean將被銷燬,並且任何掛起的事務將被回滾。
人們經常想要的是一個未經過檢查的異常,只能進行回滾。
您可以通過在您自己的某個異常類型(可以不選中)上使用@ApplicationException,然後相應地設置註釋的屬性來創建此類屬性。
+0
謝謝,非常有幫助。我不知道那個註釋。 – tsh
相關問題
- 1. 爲什麼拋出一個EJBException是一個「推薦」的做法?
- 2. 在每個GWT RPC方法調用之前 - >執行一些檢查並拋出一個檢查的異常
- 3. os.kill不是拋出一個OSERROR,但我沒有看到運行
- 4. 執行JNLP文件拋出一個AccessControlException
- 5. 我應該拋出一個EJBException異常,以防止實體創建
- 6. 執行一個方法取決於在android中執行另一個方法
- 7. 得到的答案但拋出一個例外,爲什麼?
- 8. ManagementObjectSearcher get()方法拋出一個異常
- 9. 執行方法一個接一個地執行
- 10. assertEquals拋出一個NullPointerException,但等於方法不
- 11. 錯誤拋出的一個方法,但不是其他
- 12. 我可以在EJB方法中拋出一個AssertionError嗎?
- 13. 執行一個PHP方法一次
- 14. 錯誤:方法__toString()不得拋出一個異常的Symfony2
- 15. 在實體SaveChanges方法運行LINQ後拋出一個異常
- 16. FileChannel.tryLock有時會拋出AccessDeniedException
- 17. 我的程序拋出一個異常,但它運行良好
- 18. 聲明一個方法總是拋出一個異常?
- 19. 發送一個類的引用拋出一個方法
- 20. 在C#中返回一個值之前執行的方法
- 21. 如何在執行一些其他有重載的方法之前/之後每次執行一個方法?
- 22. 如何在T-SQL之前拋出錯誤時執行下一個T-SQL?
- 23. 我無法得到一個圖像顯示之前ulli在一個div
- 24. 我如何獲得一個變量參數從一個方法到另一個
- 25. 我得到一個java.lang.NullPointerException在37行
- 26. jquery得到行內的前一個div
- 27. 當一個bundle在osgi運行時拋出一個異常時,我該如何得到通知? (equinox helios)
- 28. 停止執行方法轉移到下一個方法
- 29. Java Web服務在執行MySQL查詢後拋出一個NullPointException
- 30. 當我執行的代碼我得到一個System.IndexOutOfRangeException
你不能。這是標準。您可以使用javax.annotation.security.RolesAllowed註釋進行安全檢查。這給你一個javax.ejb.EJBAccessException。 – Christian
太糟糕了。一個用於觸發異常和先前建議的Joinpoint將會有所幫助......無論如何感謝 – tsh