在路径中使用Umlaut的PersistenceException

时间:2011-03-29 11:32:56

标签: java jpa persistence javadb toplink-essentials

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

我有一个目录,其中包含我的应用程序所需的全部内容:jar,lib文件夹和JavaDB数据库。整个目录是自包含的(我复制了几次没有问题,甚至在不同的计算机之间)。

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

启动我的应用程序失败,但异常导致很难找到原因(见下文)。

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

系统: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

1 个答案:

答案 0 :(得分:2)

奇。您使用的JVM是什么?

确保您拥有最新的TopLink Essentials补丁,我记得有空格问题,但没有Umlats问题。

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