我正在開發一個使用Hibernate3的JPA-2.0應用程序。它運行在Eclipse好的,但如果從生成運行的JAR運行它,它提供了javax.persistence.PersistenceException:無法配置的EntityManagerFactory:無法從可運行jar配置EntityManagerFactory
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
Caused by: javax.persistence.PersistenceException: Unable to configure EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:374)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1937)
at org.hibernate.ejb.packaging.JarVisitorFactory.getJarURLFromURLEntry(JarVisitorFactory.java:55)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:340)
... 12 more
如果我解開這個同樣的罐子,並直接運行類,它的工作原理,但:
java -cp .:<add list to all .jar files> MainClass
我無法弄清楚什麼是錯的。
真正的例外是別的。請發佈完整的堆棧跟蹤。你知道,其中說明了實際原因:-) – jpkrohling 2011-02-28 16:45:38
我添加了一個更完整的堆棧跟蹤。 – Roalt 2011-03-01 06:54:29
您是否在jar清單中添加/檢查了classpath依賴關係? 也許在pom中顯式的utf8編碼會有所幫助。 – 2013-01-18 12:02:53