Я пытаюсь «соткать» стороннюю банку с AspectJ с использованием агента aspectj.
Первый тестовый пример:
MyAspectJImpl.jar - содержит класс смой аспект и aop.xml (с включенной отладкой) внутри Meta-inf с правильным отображением и тестовым основным классом.
сторонний.jar
aspectJ core jar.
Я выполняю основной класс в командной строке
java -javaagent:aspectjweaver.jar -cp ...
на консоли и вижу, что этот сторонний класс сплетен, и моя реализация работает.
Второй тестовый пример:
Я перехожу к weblogic aspectj Агент установлен в сценарии, который запускает weblogic.В этом сценарии добавлен третейский jar.
в журнале weblogic. Я вижу, что мой aop загружен
[ChangeAwareClassLoader@48537e4f] info AspectJ Weaver Version 1.7.1 built on Thursday Sep 6, 2012 at 16:39:22 GMT
[ChangeAwareClassLoader@48537e4f] info register classloader weblogic.utils.classloaders.ChangeAwareClassLoader@48537e4f
[DependencyClassLoader@4d5932c7] info using configuration <path_to_my_aop.xml>
Но на этот раз я не вижу в журнале:
debug weaving '<third.party.class>'
Я вижу другиеклассы ткачества (из другого развернутого aop.xml).
(я убедился, что другие aop.xmls не исключают третью сторону)
, например:
[GenericClassLoader@62b46385] debug weaving 'com.core.BasicSessionBean'
(этот класс находится внутри развернутого уха)
Я также проверил, что сторонний класс был загружен (многословно: класс).
Есть идеи, как определить, почему этот класс не был сплетен?
Единственное отличие, которое я вижу, в том, что переплетенные классы находятся внутри развернутого файла ear.
Классы третьих сторон находятся внутри jar, который добавляется в classpath при запуске weblogic.Server.
Iможет предоставить aop.xml, но я не думаю, что это важно, потому что это сработало в моем первом тестовом примере.
Обновление
в журнале weblogic. Я вижу строки, похожие на
[GenericClassLoader@3759f631] info AspectJ Weaver Version 1.7.1 built on Thursday Sep 6, 2012 at 16:39:22 GMT
[GenericClassLoader@3759f631] info register classloader weblogic.utils.classloaders.GenericClassLoader@3759f631
20 раз для разных загрузчиков классов
Может ли это быть связано с каким-либо порядком загрузчиков классов?