有没有办法检索Web应用程序加载的类或类加载器?
例如,如果我使用此代码:
ClassLoader c=getClass().getClassLoader();
logmsg("c="+c);
URLClassLoader u=(URLClassLoader)c;
URL[] urls=u.getURLs();
for (URL i : urls) {
logmsg("url: "+i);
}
我得到代理商使用的图书馆而不是网络应用程序
答案 0 :(得分:0)
查看Reflections包。它使用javassist来提供运行时类元数据查找。为了找到正确的类路径URL,它提供了一个帮助程序类ClasspathHelper。 ClasspathHelper提供了几个静态方法,它们通过传递目标WebApp的ServletContext来返回WebApps的URL:
static URL forWebInfClasses(javax.servlet.ServletContext servletContext)
static Set<URL> forWebInfLib(javax.servlet.ServletContext servletContext)