我得到這個用例:哪個是處理java MDB異常的最佳方法?
這個圖代表的企業模型。 Weblogic 10.3上的Java EE技術與IoC和AOP的Spring框架的槓桿作用,JPA與Spring jpatemplate的持久性以及交互框架的彈簧集成。 正如你所看到的,服務和網關之間沒有耦合,因爲春季整合添加了所有需要的魔術糖。現在我不得不處理異常處理。所有鏈都沒有檢查異常:數據訪問也沒有檢查異常,因爲jpatemplate在運行時異常中封裝了所有的sql異常。
所以,唯一的檢查異常,我把手上的MDB
@Override
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void onMessage(Message message) {
try {
TextMessage textMessage = (TextMessage) message;
String stringMessage = textMessage.getText();
OnlineEventMessage<? extends Serializable> event = eventMessageParser.parse(stringMessage);
legacyEventMessageService.handle(event);
} catch (JMSException e) {
logger.error("si e' verificato un errore JMS nel processamento dell'evento {}", message, e);
}
}
我發現,如果我得到例如NPE鏈條上的某些組件的消息被回滾的JMS隊列和過程被循環回去。
哪種情況下處理異常的最佳方法是? 捕獲MDB中的所有runtimeExceptions?
親切的問候 馬西莫
我注意到你的評論脫離主題,我想知道什麼是使用jpa而不是jpatemplate的折衷。 – 2011-02-03 20:38:40