java - 路径中带有变音符号的 PersistenceException

标签 java jpa persistence javadb toplink-essentials

我遇到了一个使用 Toplink essentials 作为持久性提供程序的 java 桌面应用程序的奇怪行为。

我有一个目录,其中包含我的应用程序所需的一切:一个 jar、一个 lib 文件夹和一个 JavaDB 数据库。整个目录是独立的(我复制了好几次都没有问题,甚至在不同的计算机之间也是如此)。

今天我想再次复制,但我的目标文件夹中包含一个德语元音变音 ü (html: ü)。

启动我的应用程序失败,有一个异常(exception),这使得很难找到原因(见下文)。

当然我知道旧的命名约定,但我认为我们已经把它抛在脑后了。所以我的问题是,是否有一种方法使其独立于目录命名运行。这很重要,因为我想将应用程序提供给客户并且对安装目录的影响很小。

系统:Windows 7,JavaDB 10.5.3

预先感谢您的帮助!

SCHWERWIEGEND: Application class jlabps.JLabPSApp failed to launch
javax.persistence.PersistenceException: No Persistence provider for EntityManage
r named JLAPS_EMB:  The following providers:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Returned null to createEntityManagerFactory.

        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.
java:154)
        at jlabps.JLabPSView.initComponents(JLabPSView.java:401)
        at jlabps.JLabPSView.<init>(JLabPSView.java:47)
        at jlabps.JLabPSApp.startup(JLabPSApp.java:71)
        at org.jdesktop.application.Application$1.run(Application.java:171)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$000(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown
Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.Error: Application class jlabps
.JLabPSApp failed to launch
        at org.jdesktop.application.Application$1.run(Application.java:177)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$000(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown
Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: javax.persistence.PersistenceException: No Persistence provider for E
ntityManager named JLAPS_EMB:  The following providers:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Returned null to createEntityManagerFactory.

        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.
java:154)
        at jlabps.JLabPSView.initComponents(JLabPSView.java:401)
        at jlabps.JLabPSView.<init>(JLabPSView.java:47)
        at jlabps.JLabPSApp.startup(JLabPSApp.java:71)
        at org.jdesktop.application.Application$1.run(Application.java:171)
        ... 14 more

最佳答案

奇怪。您使用的是什么 JVM?

确保您有最新的 TopLink Essentials 补丁,我记得有一个空格问题,但不是 Umlats。

您也可以尝试升级到 EclipseLink 并查看是否出现相同的问题,如果出现请记录错误。

关于java - 路径中带有变音符号的 PersistenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471825/

相关文章:

java - php JavaBridge 与 Zend Java Bridge 配置

java - 我有一个 mysql 数据库和一个表,我将它编码为 json,当我在浏览器中运行 php 文件时,当我从 android 获取它时,它会有所不同

java - JPA-连接非实体类中的两个表

android - Android 上的 ORMLite 使用 javax.persistence 注释

java - TypedQuery - EntityManager 中的 createQuery(String) 无法应用于 (String, java.lang.Class<models.Person>)

java - 在 Jhipster 中添加应用程序属性

java - 如何将报告导出为 PDF/A-1a、PDF/A-1b?

mysql - 为什么这个 JPA 枚举不起作用?

java - Spring + Hibernate 未插入数据库(@Transactional 不起作用)

android - 如何在不使用数据库的情况下轻松存储持久化数据?