У меня большие проблемы с получением сведений об исключениях из удаленных EJB-компонентов ...
У меня есть шаблон конвейера, реализованный с помощью удаленных EJB, где один EJB вызывает другие EJB для выполнения определенных задач. Что я не могу понять, так это как получить более значимые исключения, когда возникает какая-то проблема.
Вот пример «очень полезного» вывода, который я обычно получаю из контейнера EJB (Glassfish):
2010-11-18 12:22:36,974 DEBUG [CustomerDetectionFilter.java:48 [eef819a4debb613d0670dab35c39] - Checking customer details ...<br>
2010-11-18 12:22:37,026 ERROR [ServiceCore.java:104] [eef819a4debb613d0670dab35c39] - nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException: null; nested exception is:
javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is:
org.omg.CORBA.TRANSACTION_ROLLEDBACK: vmcid: 0x2000 minor code: 1806 completed: Maybe
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException: null; nested exception is:
javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is:
org.omg.CORBA.TRANSACTION_ROLLEDBACK: vmcid: 0x2000 minor code: 1806 completed: Maybe
at com.my.remote._CustomerDetectionFilterRemote_Wrapper.execute(com/my/remote/_CustomerDetectionFilterRemote_Wrapper.java) ~[project-common.jar:na]
Так что в этом случае я бы знал, что это причина:
java.rmi.RemoteException: null
... но я не могу получить больше полезной информации для отладки.
Можете ли вы порекомендовать способ исключения обработки, когда вызывающий удаленный EJB-компонент должен получить более подробную информацию о возникшей проблеме? AppServer - это Glassfish 2.1.
Спасибо,
бозо