Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA可以在Eclipse上工作,但不能在JAR上工作_Java_Mysql_Jpa_Jar - Fatal编程技术网

Java JPA可以在Eclipse上工作,但不能在JAR上工作

Java JPA可以在Eclipse上工作,但不能在JAR上工作,java,mysql,jpa,jar,Java,Mysql,Jpa,Jar,我有一个Java程序的问题。当我从Eclipse运行程序(运行或调试)时,它工作正常。但是,当我尝试运行导出的JAR文件时,会出现以下错误: 977 INFO[main]openjpa.Runtime-启动OpenJPA2.4.2 持久性提供程序正在尝试使用persistence.xml文件中的属性解析数据源。必须在openjpa.ConnectionDriverName或javax.persistence.JDBC.driver属性中指定Java数据库连接(JDBC)驱动程序或数据源类名。以下

我有一个Java程序的问题。当我从Eclipse运行程序(运行或调试)时,它工作正常。但是,当我尝试运行导出的JAR文件时,会出现以下错误:

977 INFO[main]openjpa.Runtime-启动OpenJPA2.4.2 持久性提供程序正在尝试使用persistence.xml文件中的属性解析数据源。必须在openjpa.ConnectionDriverName或javax.persistence.JDBC.driver属性中指定Java数据库连接(JDBC)驱动程序或数据源类名。以下属性在配置中可用:“org.apache.openjpa.jdbc.conf。JDBCConfigurationImpl@2655aabb“

我检查了persistence.xml是否位于JAR文件中的正确位置(src/META-INF)

这是我的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>

org.apache.openjpa.persistence.PersistenceProviderImpl
这里是班级名称
这里是班级名称


*我从属性中删除了这些值,但在原始文件中,它们都在那里,并且是正确的(它在Eclipse中运行)。

从头开始重新创建项目解决了这个问题。

这有帮助吗?谢谢你的帮助。我使用的选项是“将所需库打包到生成的JAR中”。我按照链接中的说明进行了尝试,现在它告诉我“在尝试了以下描述的实现后,没有可用于“JPA”的持久性提供程序:org.eclipse.persistence.JPA.PersistenceProvider”您已经声明OpenJPA为您的持久性提供程序(
org.apache.OpenJPA.persistence.PersistenceProviderImpl
)但是这个错误提到了EclipseLink(
发现的实现:org.eclipse.persistence.jpa.PersistenceProvider
),那么它是哪一个呢?类路径上有哪个JPA实现?谢谢。这将是JPA。我在类路径中发现了一些额外的lib,并进行了一些清理,但错误是原来的。到目前为止,我的类路径中只有两个lib:mysql-connector-java-5.0.8-bin.jar-openjpa-all-2.4.2.jar*还有一些是通过maven添加的,但它们是用于日志和Twitter的,与持久性无关。尝试将openjpa和mysql-connector添加到maven依赖项中,并从构建路径中删除独立依赖项