不可當TomEE運行我的Java EE應用程序,我得到以下錯誤:Javax.persistance在TomEE
java.lang.NoClassDefFoundError: javax/persistence/NamedStoredProcedureQuery
有沒有編譯時錯誤,當我建立app.I我在Eclipse中開發,並有Apache TomEE在下選定的項目屬性中的目標運行時間,以便該項目可以訪問Java EE。
由於該項目使用Hibernate我已經在WEB-INF \ lib目錄下罐(這是我的理解,反過來使用javax.persistence這些罐子):
- 休眠公地的註解 - 4.0 0.4
- 休眠核心-4.3.5
- 的Hibernate JPA的2.1
我見過像this one一大堆的問題,詳細的解決辦法是添加所需的Ĵ PA jar進入應用程序的lib目錄,一切都會好起來的。但是,儘管這個解決方案可能會起作用,但聽起來對我來說聽起來很詭異,我希望TomEE能夠自己管理JPA庫。它是一個Java EE服務器,爲什麼它不這樣做。什麼是乾淨的解決方案?
此類存在。我猜你的TomEE版本只支持JPA 2.0。事實上,TomEE的主頁說:「Java EE 6 Web Profile」。 Java EE 6包含JPA 2.0,而不是2.1。 – 2015-04-01 06:15:59
得到了類似的設置,我在TOMEE啓動時發出了警告:... WARN- jar'/ /WEB-INF/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar'包含違規類: javax.persistence.Entity。它會被忽略。任何想法如何克服這一點?切換到TOMEE-2.0.0.SNAPSHOT也許? –
MWiesner
2015-04-28 11:06:37
@ Continuity8 - 對我來說,通過將罐子放入生產env TOMEE來解決這個問題似乎也很棘手。此外,它不適用於maven用於集成測試的開發人員設置,例如...: - /任何人都有一個「乾淨的方式」的想法? – MWiesner 2015-04-28 11:12:55