我在从远程EJB中获取异常详细信息时遇到很大问题......
我有一个使用远程EJB实现的管道模式,其中一个EJB调用其他EJB来执行某些任务。我无法弄清楚的是当出现一些问题时如何获得更有意义的例外。
以下是我通常从EJB容器(Glassfish)获取的“非常有用”输出的示例:
2010-11-18 12:22:36,974 DEBUG [CustomerDetectionFilter.java:48 [eef819a4debb613d0670dab35c39] - Checking customer details ...
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。
谢谢,
博若
答案 0 :(得分:1)
处理异常有多种方法。我们可以对它们进行配置,以便从中获取有关根本原因的大部分信息。
以下链接可能会提供有用的信息&主题简要讨论。
EJB异常处理的最佳实践 - http://www.ibm.com/developerworks/java/library/j-ejbexcept.html