2012-04-21 145 views
0

我正在嘗試使eclipselink與GWT的requestfactory一起工作。我不斷收到以下錯誤:persistence.xml未包含在gwt項目的WAR文件夾中

Caused by: java.lang.RuntimeException: Server Error: No Persistence provider for EntityManager named default 

在Web上瀏覽時,似乎persistence.xml必須存在於WEB-INF/classes/META-INF /中。我嘗試在src/META-INF下創建一個文件夾,並將persistence.xml放入它中,但是當我在eclipse中構建項目時,它並未包含在war/WEB-INF/classes /中。有什麼建議麼?我正在使用GWT 2.3,EclipseLink 2.3和eclipse 3.7。我如何獲得eclipse以將persistence.xml包含到正確的位置?

的persistence.xml

<?xml version="1.0" encoding="UTF-8" ?> <persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"> 

<persistence-unit name="default" transaction-type="RESOURCE_LOCAL"> 
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 

    <class>com.manning.gwtia.ch08.v2.server.Contact</class> 

    <properties> 
     <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" /> 
     <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/example" /> 
     <property name="javax.persistence.jdbc.user" value="" /> 
     <property name="javax.persistence.jdbc.password" value="" /> 

     <!-- EclipseLink should create the database schema automatically --> 
     <property name="eclipselink.ddl-generation" value="create-tables" /> 
     <property name="eclipselink.ddl-generation.output-mode" value="database" /> 
    </properties> 

</persistence-unit> 

回答

2

你嘗試將persistence.xml中的文件夾war/META-INF嗎?

編輯: 其他選項:您persistence.xml未從src/META-INF文件夾複製到classes文件夾的原因可能是因爲您的eclipse java構建路徑配置僅包含要複製到的特定類型的文件類文件夾。檢查你的項目屬性 - > Java Build Path - > Source並檢查包含/排除的內容。這可能可以解釋。

+0

我做到了。我仍然得到「沒有EntityManager命名默認的持久性提供者」錯誤。 – dubreakkk 2012-04-21 15:29:48

+0

謝謝,它工作。 – dubreakkk 2012-04-23 02:59:20

+0

幫助解決了類似的問題(beans.xml不包含),另一個選項解決了這個問題。 – Fedy2 2013-07-30 13:05:44

相關問題