diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/ResourceEntityResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/ResourceEntityResolver.java index 989576a3fdb0f24f1309862005e884434318f2d8..e8fc351df507c2ab56304aaa9d99eec0e1ea4770 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/ResourceEntityResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/ResourceEntityResolver.java @@ -114,9 +114,18 @@ public class ResourceEntityResolver extends DelegatingEntityResolver { if (url.startsWith("http:")) { url = "https:" + url.substring(5); } - source = new InputSource(url); - source.setPublicId(publicId); - return source; + try { + source = new InputSource(new URL(url).openStream()); + source.setPublicId(publicId); + source.setSystemId(systemId); + } + catch (IOException ex) { + if (logger.isDebugEnabled()) { + logger.debug("Could not resolve XML entity [" + systemId + "] through URL [" + url + "]", ex); + } + // Fall back to the parser's default behavior. + source = null; + } } }