2013-05-09 30 views
0

我在部署包含一個有狀態會話Bean的Java Web應用程序時遇到問題。一切正常,直到我嘗試調用這個bean。我得到一個異常:有狀態會話bean在生產中不起作用 - NoSuchObjectLocalException

javax.ejb.NoSuchObjectLocalException: The EJB does not exist. session-key: 1f0090bf8a25c4d1-6500a82656529888-2 

我試圖谷歌,而且我發現,這個異常意味着,有狀態會話bean與相應的會話密鑰不存在,或者出於某種原因被破壞。然而在我的本地主機一切正常。

根據網上的一些文章,可能會導致一些數據庫錯誤導致會話bean被破壞。我在MySQL錯誤日誌中找不到任何東西。其他STATELESS會話bean可以正常工作,並且可以在數據庫上運行而不會出現任何問

我被困在這裏,不知道該怎麼嘗試。你有什麼想法可能是錯的?有沒有必要在JDBC連接池或資源中設置來管理會話bean的工作?

更新: 我相信從日誌中這些錯誤消息解釋錯誤以某種方式:

[#|2013-05-09T18:32:31.386+0000|INFO|glassfish3.1.2|org.shoal.ha.cache.command.load_request|_ThreadID=27;_ThreadName=Thread-2;|Skipped Loading of 1f0090bf8a25c4d1-6500a8265c5d6306-c since there is only one instance running in the cluster.|#] 

[#|2013-05-09T18:32:31.386+0000|SEVERE|glassfish3.1.2|javax.enterprise.system.container.ejb.com.sun.ejb.containers.util.cache|_ThreadID=27;_ThreadName=Thread-2;|NRU-cz.compoundsearch.resources.SimilarityResource: Cannot load from BACKUPSTORE FOR Key: <1f0090bf8a25c4d1-6500a8265c5d6306-c>|#] 

[#|2013-05-09T18:32:31.387+0000|WARNING|glassfish3.1.2|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=27;_ThreadName=Thread-2;|EJB5184:A system exception occurred during an invocation on EJB SimilarityResource, method: public java.util.List cz.compoundsearch.resources.SimilarityResource.returnResults(java.lang.Integer,java.lang.Integer)|#] 
+0

更多日誌和ejb配置會有所幫助。 – 2013-05-09 17:20:53

+0

我附上了整個異常堆棧,但我不知道你的意思是什麼ejb配置。 – Macejkou 2013-05-09 18:12:34

回答

0

你在哪裏調用EJB?在會話bean中?在控制器中? 去實體,如果你不以一個名稱來更改單個字符看...

這種情況發生在我身上,問題是,我錯誤地切換角色 認準名(... )門面

一些大寫字母被誤改

嘗試,看看這個

作品對我來說

+0

這是映射到此會話bean的REST資源。所以我沒有在任何地方調用它。 – Macejkou 2013-05-09 18:37:29

0

system exception occurred during an invocation on EJB表示從bean中引發了運行時異常。你的日誌裏也一定有它,就在你發佈的最後一行之後。

當EJB方法拋出一個未經檢查的未使用@AplicationException註解的異常時,該bean立即被銷燬,並試圖調用它的任何方法導致此錯誤。

你能解釋一下,你是如何使用有狀態來自Rest資源的bean? Glassfish如何知道要調用哪個實例?上次我查了@ConversationScoped@SessionScoped沒有和JAX-RS一起玩。

相關問題