2010-07-14 53 views
0

下面是我在初始化任何ejb對象時得到的異常。 任何人都可以告訴下面的異常是什麼原因,我該如何解決它?初始化ejb對象時出現異常

是的是申請異常環境異常 ???

先謝謝了...等待的響應...

[7/12/10 5:05:24:226 EDT] 00000037 ExceptionUtil E CNTR0020E: EJB threw an unexpected (non-declared) exception during invoc 
ation of method "init" on bean "BeanId(RDxEAR#vs-tle-beans-server.jar#VLSContextHome, C5E6CBE5-0129-4000-E000-C9DF093361B8)". 
Exception data: java.rmi.RemoteException 
     at com.versata.tl.vls.ejb.VLSContextBean.init(VLSContextBean.java:298) 
     at com.versata.tl.vls.ejb.EJSRemoteStatefulVLSContextHome_acff79a1.init(Unknown Source) 
     at com.versata.tl.vls.ejb._EJSRemoteStatefulVLSContextHome_acff79a1_Tie.init(_EJSRemoteStatefulVLSContextHome_acff79a 
1_Tie.java:2119) 
     at com.versata.tl.vls.ejb._EJSRemoteStatefulVLSContextHome_acff79a1_Tie._invoke(_EJSRemoteStatefulVLSContextHome_acff 
79a1_Tie.java:395) 
     at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:621) 
     at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:474) 
     at com.ibm.rmi.iiop.ORB.process(ORB.java:503) 
     at com.ibm.CORBA.iiop.ORB.process(ORB.java:1571) 
     at com.ibm.rmi.iiop.Connection.respondTo(Connection.java:2703) 
     at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2577) 
     at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:62) 
     at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:118) 
     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473) 

[7/12/10 5:05:24:231 EDT] 00000037 LocalTranCoor E WLTC0017E: Resources rolled back due to setRollbackOnly() being called. 

回答

0

貌似信息不存在「所致」,但似乎由堆棧跟蹤的一部分,該狀態bean的@Init與EJBHome.create()方法相對應的方法拋出RuntimeException。 「資源回滾」消息可能不是問題的原因,但容器只是承載它,它是在運行時異常之後清理的工作。

要做的第一件事情要麼是: 1.將init()方法的主體包含在捕獲並記錄RuntimeException的內容中,以便查看問題的真正來源或更好的位置...... 2.將該異常日誌記錄放入攔截器,以便將來可以輕鬆地在任何其他bean上重用。

如果您發現RuntimeException並確定它是一個異常,您可以在沒有事務回滾的情況下拋出異常或者銷燬您的bean實例,則可以對異常類使用@ApplicationException註釋將其變爲安全扔掉。如果它是內置的異常,可以將其標記在ejb-jar.xml文件中。但請注意,這會影響所有使用的異常類型,所以要非常小心並避免執行諸如java.lang.RuntimeException之類的操作。最好標記RuntimeException的特定子類,以避免完全禁用容器在發生意外異常之後進行清理的能力。