Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa eclipselink PersistenceUnitLoadingEception在可执行JAR中_Jpa_Persistence_Classloader_Eclipselink_Executable Jar - Fatal编程技术网

Jpa eclipselink PersistenceUnitLoadingEception在可执行JAR中

Jpa eclipselink PersistenceUnitLoadingEception在可执行JAR中,jpa,persistence,classloader,eclipselink,executable-jar,Jpa,Persistence,Classloader,Eclipselink,Executable Jar,我正在开发一个使用eclipselink的独立java应用程序。当我从EclipseIDE执行应用程序时,一切都很好。但是我已经导出了一个可执行的JAR文件,从那以后,我就不能让eclipseLink工作了。 我在Eclipse社区论坛中发现了类似的问题,但还不是很方便: 请帮忙 我的例外情况如下: 2010年12月1日22:47:31199信息配置:97-关联数据库 线程“main”java.lang.reflect.InvocationTargetException中出现异常 在sun.r

我正在开发一个使用eclipselink的独立java应用程序。当我从EclipseIDE执行应用程序时,一切都很好。但是我已经导出了一个可执行的JAR文件,从那以后,我就不能让eclipseLink工作了。 我在Eclipse社区论坛中发现了类似的问题,但还不是很方便:

请帮忙

我的例外情况如下:

2010年12月1日22:47:31199信息配置:97-关联数据库 线程“main”java.lang.reflect.InvocationTargetException中出现异常 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源) 位于java.lang.reflect.Method.invoke(未知源) 位于org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa der.java:56) 原因:异常[EclipseLink-30005](Eclipse持久性服务-2.0.2.v) 20100323-r6872):org.eclipse.persistence.exceptions.persistenceUnitLoadingException 离子 异常描述:搜索持久性时引发异常 带有类加载器的rchives:java.net。URLClassLoader@61de33 内部异常:异常[EclipseLink-30004](Eclipse持久性服务) -2.0.2.v20100323-r6872):org.eclipse.persistence.exceptions.PersistenceUnitLoad ingExceptionException描述:处理persistence.xml时引发异常 从URL:rsrc:/ 内部异常:java.net.MalformedURLException 位于org.eclipse.persistence.exceptions.PersistenceUnitLoadingException.ex ceptionSearchForPersistenceResources(PersistenceUnitLoadingException.java:126 ) 位于org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFa 目录(PersistenceProvider.java:133) 位于org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFa 目录(PersistenceProvider.java:65) 在javax.persistence.persistence.createEntityManagerFactory(persistence。 爪哇:51) 在javax.persistence.persistence.createEntityManagerFactory(persistence。 爪哇:33) 在eu.agilelabs.pillAgent.db.dam.DataManagerImplJPA.(DataManagerIm plJPA.java:36) 位于eu.agilelabs.pillAgent.db.dam.DataManagerImplJPA.getInstance(DataMana gerImplJPA.java:47) 在eu.agilelabs.configuration.configuration.(configuration.java:98 ) 在eu.agilelabs.configuration.configuration.getInstance(configuration.ja)中 弗吉尼亚州:119) 位于eu.agilelabs.pillAgent.core.Main.Main(Main.java:15) ... 还有5个 原因:异常[EclipseLink-30004](Eclipse持久性服务-2.0.2.v) 20100323-r6872):org.eclipse.persistence.exceptions.persistenceUnitLoadingException 离子 异常描述:处理persistence.xml时引发异常 从URL:rsrc:/ 内部异常:java.net.MalformedURLException 位于org.eclipse.persistence.exceptions.PersistenceUnitLoadingException.ex ceptionProcessingPersistenceXML(PersistenceUnitLoadingException.java:117) 位于org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProces processPersistenceXML(PersistenceUnitProcessor.java:444) 位于org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProces processPersistenceArchive(PersistenceUnitProcessor.java:401) 位于org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProces getPersistenceUnits(PersistenceUnitProcessor.java:310) 位于org.eclipse.persistence.internal.jpa.deployment.jpainInitializer.findPe rsistenceUnitInfoInArchive(jpainInitializer.java:149) 位于org.eclipse.persistence.internal.jpa.deployment.jpainInitializer.findPe rsistenceUnitInfoInArchives(jpainInitializer.java:136) 位于org.eclipse.persistence.internal.jpa.deployment.jpainInitializer.findPe rsistenceUnitInfo(jpainInitializer.java:125) 位于org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFa 目录(PersistenceProvider.java:98) ... 还有13个 原因:java.net.MalformedURLException 位于java.net.URL。(未知源) 位于java.net.URL。(未知源) 位于java.net.URL。(未知源) 在com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrent上 实体(未知源) 在com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.com上 OCV版本(未知源) 在com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U (不知道来源) 在com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U (不知道来源) 请访问com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(目前未知) (资源) 在com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Un (已知来源) 在com.sun.org.apache.xerces.internal.jaxp.saxpasserimpl$jaxpsaxpasser.p arse(未知来源) 位于org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProces processPersistenceXML(PersistenceUnitProcessor.java:442) ... 还有19个 我想这句话一定是关键:

Internal Exception: Exception [EclipseLink-30004] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.PersistenceUnitLoad ingExceptionException Description: An exception was thrown while processing persistence.xml from URL: rsrc:../ 内部异常:异常[EclipseLink-30004](Eclipse持久性服务) -2.0.2.v20100323-r6872):org.eclipse.persistence.exceptions.PersistenceUnitLoad ingExceptionException描述:处理persistence.xml时引发异常
从URL:rsrc:../我已经设法解决了它。我改变了eclipse导出jar文件的方式。如果它将所需的库提取到jar中,那么一切都很好。无论如何谢谢你

一些背景信息

正如您提供的链接所说,当EclipseLink jar嵌入到应用程序的jar中时,EclipseLink似乎不支持加载persistence.xml

据我所知,标准的非定制Java不支持从嵌入式JAR加载类的可运行JAR。Eclipse创建的可运行jar能够通过添加自定义类加载器(
org.Eclipse.jdt.internal.jarinjarloader.jarrscloader)来克服这一限制
Internal Exception: Exception [EclipseLink-30004] (Eclipse Persistence Services
- 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.PersistenceUnitLoad
ingExceptionException Description: An exception was thrown while processing persistence.xml
from URL: rsrc:../
Eclipse-BundleShape: dir