2011-03-29 68 views
2

我遇到了一个奇怪的行为,使用Toplink essentials作为持久性提供程序的java桌面应用程序。PersistenceException和路径中的变音符号

我有一个包含我的应用程序所需的全部目录: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 

回答

2

奇数。你在使用什么JVM?

确保您拥有最新的TopLink Essentials修补程序,我记得空间问题,但不是Umlats。

你也可以尝试升级到EclipseLink并查看是否出现同样的问题,如果确实存在,请记录一个错误。

+0

谢谢詹姆斯。将尝试获取最新的补丁。我的JVM:“1.6.0_24” Java™SE运行时环境(内部版本1.6.0_24-b07) Java HotSpot™客户端虚拟机(构建19.1-b02,混合模式,共享) – 2011-03-29 13:44:16

+0

我想我有最新的toplink版本。不知道升级到EclipseLink有多棘手,还是只是替换一些罐子? – 2011-04-08 11:55:38