gpt4 book ai didi

java - Weblogic11g 中 Reflecions 0.9.9-RC1 的类加载器错误

转载 作者:行者123 更新时间:2023-11-29 08:50:26 25 4
gpt4 key购买 nike

我在使用 Reflections 0.9.9-RC1 jar 在 Weblogic 10.3.5 上部署 EAR 应用程序时遇到问题。

使用默认类加载器(weblogic.utils.classloaders.ChangeAwareClassLoader@396e8d0 finder:weblogic.utils.classloaders.CodeGenClassFinder@5bcfadd)我得到这个错误:

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]

这是代码部分:

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))));

我还尝试从中获取类加载器:

//classLoadersList.add(ClasspathHelper.contextClassLoader());
//classLoadersList.add(this.getClass().getClassLoader());
//classLoadersList.add(ClasspathHelper.staticClassLoader());

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

在本地主机中,如果我将 jar 放在指定的目录中,它显然可以工作,但我在将要部署它的服务器中没有该选项。

有什么建议吗?

最佳答案

确保您从 ClasspathHelper.forXXX 方法之一获得正确的 url,并且这些 url 存在且可访问。

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

关于java - Weblogic11g 中 Reflecions 0.9.9-RC1 的类加载器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22985795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com