1 package org.scannotation;
3 import javax.servlet.ServletContext;
4 import javax.servlet.ServletContextEvent;
5 import java.net.MalformedURLException;
7 import java.util.ArrayList;
11 * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
12 * @version $Revision: 1 $
14 public class WarUrlFinder
16 public static URL[] findWebInfLibClasspaths(ServletContextEvent servletContextEvent)
18 ServletContext servletContext = servletContextEvent.getServletContext();
19 return findWebInfLibClasspaths(servletContext);
22 public static URL[] findWebInfLibClasspaths(ServletContext servletContext)
24 ArrayList<URL> list = new ArrayList<URL>();
25 Set libJars = servletContext.getResourcePaths("/WEB-INF/lib");
26 for (Object jar : libJars)
30 list.add(servletContext.getResource((String) jar));
32 catch (MalformedURLException e)
34 throw new RuntimeException(e);
37 return list.toArray(new URL[list.size()]);
40 public static URL findWebInfClassesPath(ServletContextEvent servletContextEvent)
42 ServletContext servletContext = servletContextEvent.getServletContext();
43 return findWebInfClassesPath(servletContext);
47 * Find the URL pointing to "/WEB-INF/classes" This method may not work in conjunction with IteratorFactory
48 * if your servlet container does not extract the /WEB-INF/classes into a real file-based directory
50 * @param servletContext
53 public static URL findWebInfClassesPath(ServletContext servletContext)
55 Set libJars = servletContext.getResourcePaths("/WEB-INF/classes");
56 for (Object jar : libJars)
60 URL url = servletContext.getResource((String) jar);
61 String urlString = url.toString();
62 int index = urlString.lastIndexOf("/WEB-INF/classes/");
63 urlString = urlString.substring(0, index + "/WEB-INF/classes/".length());
64 return new URL(urlString);
66 catch (MalformedURLException e)
68 throw new RuntimeException(e);