回答
您在問題中提供的信息實際上有點微不足道,但無論如何我都會給它一個鏡頭。
限制異常記錄這些請求處理過程中發生的(根據您的評論),你的第一個步驟是安裝一個Servlet過濾器:
@WebFilter(filterName="exceptionHandler", urlPatterns="/*")
public class ExceptionHandler extends HttpFilter {
@Override
public void doFilter(HttpServletRequest request, HttpServletResponse response, HttpSession session, FilterChain chain) throws ServletException, IOException {
try {
chain.doFilter(request, response);
} catch (Exception e) {
// ... handle exception here
}
}
}
如果您已經安裝了其他的過濾器,你會可能需要一個web.xml
來調整它們被調用的順序。
下一步是執行異步持久化到數據庫。這取決於您在JSF和Hibernate之外使用的堆棧。例如,Java EE在這裏有一個方便的@Asynchronous
註釋,而在Spring中它是@Async
。通常JSF通常與Java EE結合在一起,但是人們說他們使用Hibernate而不是JPA,通常傾向於使用Tomcat。
對於Java EE,你會注入一個EJB中的過濾器,使用JPA(可能休眠)的EJB和提到@Asynchronous
註釋:
篩選:
@WebFilter(filterName="exceptionHandler", urlPatterns="/*")
public class ExceptionHandler extends HttpFilter {
@EJB
private ExceptionPersister exceptionPersister;
@Override
public void doFilter(HttpServletRequest request, HttpServletResponse response, HttpSession session, FilterChain chain) throws ServletException, IOException {
try {
chain.doFilter(request, response);
} catch (Exception e) {
exceptionPersister.persist(e);
}
}
}
EJB:
@Stateless
public class ExceptionPersister {
@PersistenceContext
private EntityManager entityManager;
@Asynchronous
public void persist(Exception exception) {
// use entityManager to persist exception in your
// specific way.
}
}
感謝它幫了我很多..我不知道在這裏提到..
**謝謝Arjan Tijms ** –
user1117297
2011-12-29 09:04:56
不客氣;) – 2011-12-29 10:33:11
- 1. 性能DB異步調用
- 2. 如何使用JSF 2 + Eclipse創建項目Java EE Web Developers + Hibernate?
- 3. 異常在Eclipse動態Web使用JSF項目時
- 4. 在c中調用異步web服務#
- 5. 異步web服務調用
- 6. 異步Web服務調用
- 7. 調用Web服務異步
- 8. 異步調用Web服務
- 9. JSF Spring Hibernate項目結構
- 10. JSF + Hyperjaxb3 + Hibernate LazyInitializationException異步請求
- 11. 在JSF項目中引用JPA項目
- 12. 如何在我的JSF項目中使用RESTful Web服務?
- 13. 異步調用和異步io調用之間的差異.net
- 14. 在IDisposable.Dispose()中使用異步調用
- 15. 使異步調用同步
- 16. 使異步調用同步
- 17. 在Silverlight項目中調用異步JavaScript代碼
- 18. 在NodeJS中使用異步響應的異步調用
- 19. 使用.join在異步承諾中調用異步承諾
- 20. flex中的同步和異步調用
- 21. 在JSF菜單中使用項目
- 22. 使用PowerShell來調用Web服務的異步Web方法
- 23. 我可以在一個項目中使用異步和同步套接字嗎?
- 24. 異步調用使用異步和等待
- 25. 在同步方法中調用異步web api方法throws error
- 26. 在C#中異步調用WebRequest和WebService
- 27. 如何在Julia中使用回調進行異步Web查詢?
- 28. WCF異步調用引發目標調用異常在Main()
- 29. 異步調用使用JavaScript
- 30. 集成jsf,spring,hibernate:無法在jsf文件中調用bean
你想記錄什麼異常?你到目前爲止創造了什麼? – 2011-12-28 08:46:35
我想記錄在任何級別(數據庫或Java類)的請求期間發生的任何異常...我不想使用log4j,而是想將它記錄到數據庫(使用記錄器,我們通常使用不同的級別) – user1117297 2011-12-28 09:15:58
你只使用Hibernate和JSF嗎? Servlet的? EJB?彈簧?向我們展示一些你到目前爲止的代碼。 – 2011-12-28 09:19:22