【问题标题】:Unable to configure EntityManagerFactory from runnable jar无法从可运行 jar 配置 EntityManagerFactory
【发布时间】:2011-07-05 19:51:48
【问题描述】:

我正在使用 Hibernate3 开发 JPA-2.0 应用程序。它在 Eclipse 中运行良好,但如果从生成的可运行 jar 运行它,它会给出 javax.persistence.PersistenceException: Unable to configure 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

如果我解压同一个 jar 并直接运行该类,它仍然可以工作:

java -cp .:<add list to all .jar files> MainClass

我不知道出了什么问题。

【问题讨论】:

  • 真正的例外是别的东西。请发布完整的堆栈跟踪。你知道的,说明实际原因的那个:-)
  • 我添加了更完整的堆栈跟踪。
  • 您是否在 jar 清单中添加/检查了类路径依赖项?也许 pom 中的显式 utf8 编码会有所帮助。

标签: eclipse hibernate persistence jpa-2.0


【解决方案1】:

如果您在生成可运行 JAR 时选择“将所需库提取到生成的 JAR”中,它将起作用。

【讨论】:

    【解决方案2】:

    我首先要检查的一件事是,persistance.xml 位于您正在构建的 jar 的 META-INF 目录中。

    【讨论】:

    • 是的,jar里面有一个META-INF/persistence.xml
    猜你喜欢
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    相关资源
    最近更新 更多