当前位置: 首页 > 知识库问答 >
问题:

在eclipse中导出项目时如何找到persistence.xml

万俟经纶
2023-03-14

我在Eclipse的一个JPA项目中工作。我使用:Hibernate、JavaFX和jOOQ,我将使用Jasper。在Eclipse上,项目正常运行,但是当我想要导出一个可运行的jar并尝试执行时,jar就会抛出异常。

Exception in Application start method
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
        at com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$147(Unknown Source)
        at com.sun.javafx.application.LauncherImpl$$Lambda$48/1851691492.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: javax.persistence.PersistenceException: Unable to build entity manager factory
        at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:83)
        at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
        at br.com.olk.srv.dao.OlkDAO.<init>(OlkDAO.java:24)
        at br.com.olk.cli.controller.Main.<init>(Main.java:19)
        at br.com.olk.cli.view.LoginApp.start(LoginApp.java:24)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$153(Unknown Source)
        at com.sun.javafx.application.LauncherImpl$$Lambda$51/1604076978.run(Unknown Source)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(Unknown Source)
        at com.sun.javafx.application.PlatformImpl$$Lambda$45/1108411398.run(Unknown Source)
        at com.sun.javafx.application.PlatformImpl.lambda$null$164(Unknown Source)
        at com.sun.javafx.application.PlatformImpl$$Lambda$47/854215995.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(Unknown Source)
        at com.sun.javafx.application.PlatformImpl$$Lambda$46/584634336.run(Unknown Source)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$141(Unknown Source)
        at com.sun.glass.ui.win.WinApplication$$Lambda$37/1267032364.run(Unknown Source)
        ... 1 more
Caused by: org.hibernate.cache.NoCacheRegionFactoryAvailableException: Second-level cache is used in the application, but property hibernate.cache.region.factory_class is not given; please either disable second level cache or set correct region factory using the hibernate.cache.region.factory_class setting and make sure the second level cache provider (hibernate-infinispan, e.g.) is available on the classpath.
        at org.hibernate.cache.internal.NoCachingRegionFactory.buildNaturalIdRegion(NoCachingRegionFactory.java:89)
        at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:381)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:852)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:845)
        at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:844)
        at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
        ... 20 more
Exception running application br.com.olk.cli.view.LoginApp

我认为这可能是因为在jar文件中找不到可运行文件。如何使可运行的jar文件找到persistence.xml文件?

简而言之,我如何像在Eclipse中一样运行可运行的jar文件?(正在查找persistence.xml文件)

共有1个答案

施俊哲
2023-03-14

你的问题不在于坚持。缺少xml,但正因为如此:

二级缓存在应用程序中使用,但没有给出属性hibernate.cache.region.factory_class;请禁用二级缓存或使用hibernate.cache.region.factory_class设置设置正确的区域工厂,并确保二级缓存提供程序(hibernate-infinispana,例如)在类路径上可用。

我在这里谈到了这个错误:https://stackoverflow.com/a/29109009/3116666

 类似资料:
  • 本文向大家介绍如何在Java eclipse项目中找到Package Explorer?,包括了如何在Java eclipse项目中找到Package Explorer?的使用技巧和注意事项,需要的朋友参考一下 要查看项目浏览器,请单击“窗口”菜单,然后单击“显示视图”并选择“项目资源管理器”。 有一种更简单的方法来打开项目资源管理器,当您在编辑器中时,按alt + shift + w并选择项目资

  • 我确实检查了已经回答过的问题,这些问题的主题几乎与这个问题相同,但没有一个回答过的问题能够解决我的问题。 我已经在线搜索了大约4个小时,尝试了很多不同的方法来解决我的问题。。 我想在Java做一个乒乓游戏,现在我想导出我的项目,这样我就可以把它发给一些朋友,这样他就可以试试了。 我在这个项目中使用LWJGL,所以我确实在参考库和LWJGL中添加了一些JAR。jar添加了windows本机,它包含在

  • 我在尝试在Eclipse中导入Maven Java项目时遇到一个错误。我认为这个问题是由于操作系统的原因,因为我从Windows转到了Ubuntu。我得到以下错误: 在“导入Maven项目”过程中发生内部错误。org/Eclipse/Core/Internal/Resources/OS

  • 我有一个(命令行)基于maven的项目,非常好用(mvn清理、mvn验证、安装都很完美)!我现在想把它导入eclipse,不是作为maven项目,而是常规的eclipse项目。 我做到了,但我有一个依赖性问题,我只需将创建的所有jar复制到。m2文件夹到我的eclipse工作区中的另一个文件夹。然后我将所有这些罐子添加到我的项目中。 一切都好! 问题是:我觉得这不是在eclipse中管理依赖关系的

  • 问题内容: 我想在中使用Servlet进行开发,但是它说该软件包无法解析。如何将包添加到Eclipse项目中? 问题答案: 确保您使用了正确的Eclipse和Server 确保至少将Eclipse IDE用于Enterprise Java开发人员(与Enterprise一起使用)。它包含用于创建动态Web项目并轻松集成servlet容器的开发工具(这些工具是WTP的一部分)。如果您已经具有Java