gpt4 book ai didi

java - 组装 jar 后 - 没有名为 EntityManager 的持久性提供程序

转载 作者:行者123 更新时间:2023-11-30 05:13:35 24 4
gpt4 key购买 nike

我正在开发一个独立的应用程序,从我的 ide(intellij idea) 启动它时它工作正常,但是在创建 uberjar 并从中启动应用程序后,抛出 javax.persistence.spi.PersistenceProvider 并提示“没有 EntityManager 的持久性提供程序”命名为testPU”

这是我的 persistence.xml,它位于 meta-inf 目录下:

 <persistence-unit name="testPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>test.model.Configuration</class>
<properties>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.password" value="root"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
<property name="hibernate.c3p0.timeout" value="300"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>

这是我创建实体管理器工厂的方法:

emf = Persistence.createEntityManagerFactory("testPU");

我使用maven并尝试了默认配置的组装插件,我没有太多组装jar的经验,我不知道我是否遗漏了一些东西,所以如果你有任何想法,我很高兴听到他们

最佳答案

您的库可能有问题。请尝试执行以下操作。

  1. 构建您的应用程序 JAR 文件
  2. 获取应用程序使用的所有库并将它们放入 lib 文件夹中。
  3. 将 JAR 文件和 lib 文件夹放入新文件夹(例如 MyApp)中。
  4. 使用 7-ZIP 或 WinRAR 打开文件。在 META-INF 文件夹中查找 Manifest.MF。
  5. 您的 list 文件应该类似于..

list 版本:1.0Ant 版本:Apache Ant 1.7.0创建者:1.6.0_03-b05(Sun Microsystems Inc.)主要类别:类路径:lib/.jar lib/.jar lib/.jar ...

关于java - 组装 jar 后 - 没有名为 EntityManager 的持久性提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2456634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com