首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Weblogic11g中包含Reflecions 0.9.9-RC1的ClassLoader错误

Weblogic11g中包含Reflecions 0.9.9-RC1的ClassLoader错误
EN

Stack Overflow用户
提问于 2014-04-10 18:45:32
回答 2查看 799关注 0票数 2

我在WebLogic10.3.5上使用Reflections 0.9.9-RC1JAR部署EAR应用程序时遇到了问题。

对于默认的类加载器(weblogic.utils.classloaders.ChangeAwareClassLoader@396e8d0查找器: weblogic.utils.classloaders.CodeGenClassFinder@5bcfadd),我得到这个错误:

代码语言:javascript
复制
ExecuteThread: 2 for queue: weblogic.kernel.Default (self-tuning)] - could not create Dir using jarFile from url file:/D:/Servers/Oracle10.3.5/patch_wls1035/profiles/default/sys_manifest_classpath/weblogic_patch.jar. skipping.
   java.lang.NullPointerException: null
   at java.util.zip.ZipFile.<init>(ZipFile.java:108) ~[na:1.6.0_24]
   at java.util.jar.JarFile.<init>(JarFile.java:135) ~[na:1.6.0_24]
   at java.util.jar.JarFile.<init>(JarFile.java:99) ~[na:1.6.0_24]
   at org.reflections.vfs.Vfs$DefaultUrlTypes$1.createDir(Vfs.java:207) ~[reflections-0.9.9-RC1.jar:na]
   at org.reflections.vfs.Vfs.fromURL(Vfs.java:99) [reflections-0.9.9-RC1.jar:na]
   at org.reflections.vfs.Vfs.fromURL(Vfs.java:91) [reflections-0.9.9-RC1.jar:na]
   at org.reflections.Reflections.scan(Reflections.java:231) [reflections-0.9.9-RC1.jar:na]
   at org.reflections.Reflections.scan(Reflections.java:204) [reflections-0.9.9-RC1.jar:na]
   at org.reflections.Reflections.<init>(Reflections.java:129) [reflections-0.9.9-RC1.jar:na]

ExecuteThread: 2 for queue: weblogic.kernel.Default (self-tuning)] - could not create Vfs.Dir from url. ignoring the exception and continuing
   org.reflections.ReflectionsException: Could not open url connection
   at org.reflections.vfs.JarInputDir$1$1.<init>(JarInputDir.java:36) ~[reflections-0.9.9-RC1.jar:na]
   at org.reflections.vfs.JarInputDir$1.iterator(JarInputDir.java:32) ~[reflections-0.9.9-RC1.jar:na]
   at org.reflections.Reflections.scan(Reflections.java:231) ~[reflections-0.9.9-RC1.jar:na]
   at org.reflections.Reflections.scan(Reflections.java:204) ~[reflections-0.9.9-RC1.jar:na]
   at org.reflections.Reflections.<init>(Reflections.java:129) ~[reflections-0.9.9-RC1.jar:na]

下面是代码部分:

代码语言:javascript
复制
List<ClassLoader> classLoadersList = new LinkedList<ClassLoader>();
classLoadersList.add(Thread.currentThread().getContextClassLoader());

Reflections ref = new Reflections(new ConfigurationBuilder()
                .setScanners(new SubTypesScanner(false /* don't exclude Object.class */), new ResourcesScanner())
                .setUrls(ClasspathHelper.forClassLoader(classLoadersList.toArray(new ClassLoader[0])))
                .filterInputsBy(new FilterBuilder().include(FilterBuilder.prefix(p))));

我还试着从下面的代码中获取类加载器:

代码语言:javascript
复制
//classLoadersList.add(ClasspathHelper.contextClassLoader());
//classLoadersList.add(this.getClass().getClassLoader());
//classLoadersList.add(ClasspathHelper.staticClassLoader());

但它在所有这些函数中都返回相同的类加载器。

在localhost中,如果我将jar放在指定的目录中,它显然是有效的,但是我在将要部署它的服务器中没有这个选项。

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2014-04-29 17:27:31

确保您从其中一个ClasspathHelper.forXXX方法获得了正确的urls,并且这些urls存在并且可以访问。

您可能不想扫描weblogic_patch.jar,但您的应用程序是jars。

票数 0
EN

Stack Overflow用户

发布于 2014-05-07 21:03:52

你的代码没问题,我也有同样的问题。这个问题与一个永远不会抛出的内部异常的处理有关。

我已经向Reflections提交了一个可能的纠正方法:

https://groups.google.com/forum/#!topic/google-code-reflections/EtwuzC_Eesc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22985795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档