2010-10-30 63 views
2

我的IntelliJ中有一個EJB和一個WEB模塊,創建了5個實體,我希望使用註釋加載到數據庫中。在glassfish部署描述符(IntelliJ)上找不到persistence.xml

我去模塊下的項目設置,並選擇我想添加JPA方面,我知道有一個EJB,WEB和JPA方面。我使用eclipselink,所以我在JPA設置下檢查了它,然後添加了我的persistence.xml文件,配置了該文件。

問題是,在部署時,它不會部署persistence.xml文件,這意味着在部署描述符下選擇我的應用程序時,我無法在我的glassfish 3.0服務器中找到它。我只能在EJB模塊下找到我的sun-web-ejb.xml。 persistence.xml也不在WEB模塊下,但我認爲它應該在EJB模塊下。

是否意味着我的persistence.xml不應該加載到服務器上,以便我可以在GF管理控制檯(應用程序 - > EJB模塊 - >部署描述符)下找到xml文件?

如果不是這個意思,我有什麼特別需要在IntelliJ中做persistence.xml部署在服務器上?也許它特別需要處理我的JPA方面?

感謝您對此提供的任何反饋,如果有必要,我可以提供有關我的設置的更多詳細信息。

回答

2

我只能在EJB模塊下找到我的sun-web-ejb.xml。

這已經很奇怪了。如果我沒有錯,這是Web模塊的專有部署描述符。

的persistence.xml不是Web模塊下任,但我相信它應該是EJB模塊反正

這一切都取決於你如何打包和部署你的實體,可以做下有幾種方式(見What You May Need to Know About Persistence Unit Packaging Options)。

如果您的實體打包在EJB-JAR中,則persistence.xml必須放在META-INF目錄中。

但是你可以將它們打包到Web模塊中,這對你來說會更簡單。看到上面的鏈接。

是否意味着我的persistence.xml不應該加載到服務器上,以便我可以在GF管理控制檯(應用程序 - > EJB模塊 - >部署描述符)下找到xml文件?

我建議檢查物理JAR是否包含META-INF/persistence.xml

如果這不是打算,有什麼特別的我需要在IntelliJ中做的persistence.xml部署在服務器上?也許它特別需要處理我的JPA方面?

不能說。也許下面的鏈接可以幫助:Enabling JPA Support

+1

非常感謝您的幫助,您在哪裏正確,這取決於我如何打包它,所以在我的情況下,我的GF 3.0服務器上不應該列出persistence.xml。 此外,我還要感謝您就EE開發所做的其他一些職位,我去看了一下您的個人資料,並看到您推薦了一本帶有Java 3.0的Java 3.0平臺的書。這也有很大幫助。 我也不得不承認,我有點壓力,因爲我在我的最後(學校)有一個時間表,我不知道什麼時候所有的企業作品都會落到位。 – user294937 2010-11-05 14:35:35

+0

@ user294937:不客氣。很高興你發現我的其他答案也有幫助。感謝您的反饋。 – 2010-11-06 09:32:24