0

我们有几个方面,方面类是用@Aspect 定义的,并在 METAINFO/aop.xml 中声明了相同的方面:

aop.xml

<aspectj>
    <weaver options="-Xset:weaveJavaxPackages=true">
       <include within = "Test"/>
    </weaver>
    <aspects>
        <aspect name = "Test"/>
 </aspects>
</aspectj>

以下错误仅在带有 WebSphere 的 IBM JDK 环境中引发。

例外:

Test.java::0 类 {0} 的错误已经编织并且尚未以可重新编织模式构建 [Xlint:nonReweavableTypeEncountered]


相同的代码适用于 Tomcat + Oracle JDK 堆栈组合。

4

1 回答 1

0

根据 AspectJ 配置。

Aspect 不需要将其添加到 Weaver 标记中,这会导致在 WAS 的 SystemOut.log 中引发错误。

<aspectj>
    <weaver options="-Xset:weaveJavaxPackages=true">
      // add only actual classes to be woven.
    </weaver>
    <aspects>
        <aspect name = "Test"/>
 </aspects>
</aspectj>

一个 aop.xml 文件包含两个关键部分:“方面”定义编织器的一个或多个方面,并控制在编织过程中要使用哪些方面;"weaver" 定义了 weaver 选项以及应该编织的类型。

https://www.eclipse.org/aspectj/doc/next/devguide/ltw-configuration.html

于 2019-04-10T06:22:47.213 回答