2

Toplink Essentialsを永続化プロバイダとして使用する Java デスクトップ アプリケーションで奇妙な動作が発生しました。

アプリケーションに必要なものすべてを含むディレクトリが 1 つあります。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
4

1 に答える 1

2

奇数。どのJVMを使用していますか?

最新のTopLinkEssentialsパッチがあることを確認してください。スペースの問題を覚えていますが、ウムラウトは覚えていません。

EclipseLinkにアップグレードして、同じ問題が発生するかどうかを確認することもできます。発生する場合は、バグをログに記録してください。

于 2011-03-29T13:42:29.140 に答える