gpt4 book ai didi

java - WeavingURLClassLoader 只能编织本地 jar 的各个方面吗?

转载 作者:行者123 更新时间:2023-12-01 14:32:16 25 4
gpt4 key购买 nike

当我在库上使用 Java 反射调用时,我尝试在带有来自 Web 服务器的 jar 的小程序中使用 AspectJ 加载时编织。必须加载的类的名称作为参数传递。因此我无法使用编译时编织。
这是我的小程序“MyApplet”的一些代码:

URLClassLoader appletClassLoader = (URLClassLoader)
RemoteConfigurationApplet.class.getClassLoader();
URL[] urlList = appletClassLoader.getURLs();
URL aspectJar = null;
try {
aspectJar = new URL("https://myserver:8443/MyWebApp/applet/MyApplet.jar/");
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
WeavingURLClassLoader weavingClassLoader = new WeavingURLClassLoader(urlList,
new URL[]{ aspectJar }, Thread.currentThread().getContextClassLoader());

但是,我总是遇到异常(exception):

org.aspectj.bridge.AbortException: bad aspect library: "/MyWebApp/applet/MyApplet.jar"

我怀疑“addAspectLibrary”中文件对象的使用导致了该问题:

private void addAspectLibrary(String aspectLibraryName) {
File aspectLibrary = new File(aspectLibraryName);
if (aspectLibrary.isDirectory() || (FileUtil.isZipFile(aspectLibrary))) {
try {
info("adding aspect library: '" + aspectLibrary + "'");
weaver.addLibraryJarFile(aspectLibrary);
} catch (IOException ex) {

error("exception adding aspect library: '" + ex + "'");
}
} else {
error("bad aspect library: '" + aspectLibrary + "'");
}
}

它会缩减 URL,然后在硬盘上查找找不到的文件。有人有办法让它运行吗?

最佳答案

我认为这是 AspectJ 中的一个错误,并在 Bugzilla 中提出了一个错误.

关于java - WeavingURLClassLoader 只能编织本地 jar 的各个方面吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16777015/

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