X-Git-Url: https://juplo.de/gitweb/?p=scannotation;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fscannotation%2FWarUrlFinder.java;h=a158c3c59f13b77b5cab070d8cadbb63bae913d5;hp=f253764afe4086324daa37a61b31892cdb253856;hb=ef4ea99491aa96637db0c580e938724a68dd6e15;hpb=6f8bc0038ccf20fceaf363d36c22b731e0a998e3 diff --git a/src/main/java/org/scannotation/WarUrlFinder.java b/src/main/java/org/scannotation/WarUrlFinder.java index f253764..a158c3c 100644 --- a/src/main/java/org/scannotation/WarUrlFinder.java +++ b/src/main/java/org/scannotation/WarUrlFinder.java @@ -6,6 +6,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Set; +import java.io.File; /** * @author Bill Burke @@ -48,27 +49,21 @@ public class WarUrlFinder * if your servlet container does not extract the /WEB-INF/classes into a real file-based directory * * @param servletContext - * @return + * @return null if cannot determin /WEB-INF/classes */ public static URL findWebInfClassesPath(ServletContext servletContext) { - Set libJars = servletContext.getResourcePaths("/WEB-INF/classes"); - for (Object jar : libJars) + String path = servletContext.getRealPath("/WEB-INF/classes"); + if (path == null) return null; + File fp = new File(path); + if (fp.exists() == false) return null; + try { - try - { - URL url = servletContext.getResource((String) jar); - String urlString = url.toString(); - int index = urlString.lastIndexOf("/WEB-INF/classes/"); - urlString = urlString.substring(0, index + "/WEB-INF/classes/".length()); - return new URL(urlString); - } - catch (MalformedURLException e) - { - throw new RuntimeException(e); - } + return fp.toURL(); + } + catch (MalformedURLException e) + { + throw new RuntimeException(e); } - return null; - } }