我有一個war文件,其中包含許多AspectJ方面和一個aop.xml文件,它指定了這些方面適用的包。啓用AOP加載時間加入此行到我的Spring配置通過彈簧編織:如何避免多個AspectJ編織器在使用aop.xml進入和退出war文件時運行
<context:load-time-weaver/>
這將啓動默認韋弗這對於我的應用程序服務器是:org.springframework.instrument.classloading.weblogic.WebLogicLoadTimeWeaver。
問題是,我們還有另一個方面&關聯的aop.xml文件定義在系統類路徑上,這是由-javaagent:lib/aspectjweaver-1.7.4.jar觸發的,因此會加載另一個織布工。
的2個編織似乎發生衝突,我看到:
[[email protected]] warning define generated class failed -- (LinkageError) loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader): attempted duplicate class definition for name: "x/y/MyClassImpl$AjcClosure1"
loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader): attempted duplicate class definition for name: "x/y/MyClassImpl$AjcClosure1"
java.lang.LinkageError: loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader): attempted duplicate class definition for name: "x/y/MyClassImpl$AjcClosure1"
,如果有一種方法,使戰爭使用由javaagent線定義的aspectjweaver所以我只有1個韋弗運行我不知道?注意我不想將我的方面從戰爭移到系統類路徑,因爲他們對其他庫有很多依賴關係。
任何指導非常感謝!
感謝
非常感謝您的快速響應,但這似乎沒有任何區別。我將嘗試&註釋 行,看看這是否有幫助.. –
MandyW
2014-10-23 07:32:16