簡體   English   中英

使用Wicket / JPA注入實體管理器時出錯

[英]Error injecting entity manager with Wicket/JPA

我有一個使用Wicket的應用程序用於表示層,並在GlassFish v3.0.1上部署了CDI / Weld,JPA 2.0,EJB 3.1等(Java EE 6)。

當我嘗試使用@EJB將EJB注入到wicket頁面中時,出現以下錯誤:java.lang.IllegalStateException:無法為unitName檢索EntityManagerFactory

當我嘗試使用@Inject進行注入時,出現以下錯誤:java.lang.IllegalStateException:無法將ejb UserRepository的ejbRef轉換為類型類的業務對象

我認為問題出在JPA。 我使用的是與正常工作的JSF應用程序所使用的完全相同的配置,因此我對可能出現的問題感到迷惑。 連接池已正確設置並通過GlassFish正確ping通,我在類路徑中包括了wicket-weld,甚至嘗試對wicketstuff-javaeeapi使用舊的Java EE 5 wicketstuff項目,其結果相同。

任何幫助,將不勝感激。

如果出現異常:

無法檢索unitName的EntityManagerFactory

這可能意味着它沒有檢測到您的persistence.xml文件。 確保它在WEB-INF\\classes\\META-INF目錄中。

通過轉到GlassFish中的管理控制台,轉到“應用程序”部分,查看應用程序是否顯示類似[ejb, web, weld, jpa] ,可以驗證您的應用程序已啟用JPA。 如果未顯示jpa則找不到您的JPA配置文件。

總是可以嘗試通過其標准的“ java:global”名稱來查找EJB。 那至少應該讓您排除檢票口作為問題的可能根源,並使您更接近工作系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM