我正在开发一个使用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