diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java index 58217357011269453cb0f36544cf571bd89d8aca..bf9283eae2e829ea16c095e5e584ec902c90c5f3 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java @@ -615,8 +615,8 @@ public class DefaultPersistenceUnitManager return null; } try { - Resource res = this.resourcePatternResolver.getResource(this.defaultPersistenceUnitRootLocation); - return res.getURL(); + URL url = this.resourcePatternResolver.getResource(this.defaultPersistenceUnitRootLocation).getURL(); + return (ResourceUtils.isJarURL(url) ? ResourceUtils.extractJarFileURL(url) : url); } catch (IOException ex) { throw new PersistenceException("Unable to resolve persistence unit root URL", ex);