2017-06-20 51 views
0

我有一個Java程序的問題。當我從Eclipse(運行或調試)運行程序時,它工作正常。但是,當我嘗試運行導出的JAR文件它給了我下面的錯誤:JPA在Eclipse上工作,但不在JAR上

977 INFO [main] openjpa.Runtime - Starting OpenJPA 2.4.2 The persistence provider is attempting to use properties in the persistence.xml file to resolve the data source. A Java Database Connectivity (JDBC) driver or data source class name must be specified in the openjpa.ConnectionDriverName or javax.persistence.jdbc.driver property. The following properties are available in the configuration: "[email protected]".

我檢查了的persistence.xml是在正確的位置中(src/META-INF)的JAR文件。

這是我的persistence.xml:

<persistence-unit name="JPA" transaction-type="RESOURCE_LOCAL"> 

    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> 
    <class>class_name_here</class> 
    <class>class_name_here</class> 

    <properties> 

    <property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" /> 

    <!-- Production --> 
    <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
    <property name="javax.persistence.jdbc.url" value="jdbc:mysql://server:port/database" /> 
    <property name="javax.persistence.jdbc.user" value="user" /> 
    <property name="javax.persistence.jdbc.password" value="password" /> 

    </properties> 

*我從屬性刪除的值,但在原來的文件,他們在那裏,他們是正確的(它運行從Eclipse內部)。

+0

這有幫助嗎? https://stackoverflow.com/questions/19785804/how-export-java-jar-from-eclipse-with-dependencies-on-other-jars – crizzis

+0

感謝您的幫助。我正在使用選項「將所需庫包裝到生成的JAR中」。我嘗試按照鏈接中的說明進行操作,現在它告訴我:在嘗試以下已知的實現之後,沒有可用於「JPA」的持久性提供程序:org.eclipse.persistence.jpa.PersistenceProvider「 – jgrodrigueza

+0

您已將OpenJPA聲明爲持久性提供程序(' org.apache.openjpa.persistence.PersistenceProviderImpl'),但錯誤提到了EclipseLink('發現的實現:org.eclipse.persistence.jpa.PersistenceProvider')所以,這是什麼?類路徑上有哪些JPA實現可用? – crizzis

回答

0

重新從頭開始重建項目解決了這個問題。

相關問題