использование Aspectj в Websphere

мы используем загрузку времени компиляции Aspectj в исходном наборе инструментов Spring. Когда мы пытаемся развернуть этот проект на сервере веб-сферы, мы получаем следующее исключение. Этот проект отлично работает на сервере tomcat. Компилятор AspectJ уже есть в Spring Source Tool.

Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions
(1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: 
Property 'exceptionProp' threw exception; nested exception is java.lang.NoSuchMethodError:   org/aspectj/runtime/internal/AroundClosure.linkClosureAndJoinPoint(I)
Lorg/aspectj/lang/ProceedingJoinPoint

person Vish    schedule 24.05.2011    source источник
comment
Вы изменили порядок загрузчика классов на: родитель последним?   -  person Ralph    schedule 24.05.2011
comment
@ Ральф нет, мы этого не делали   -  person Vish    schedule 24.05.2011
comment
попробуйте изменить порядок загрузчика классов вашего веб-модуля на: родительский последний   -  person Ralph    schedule 25.05.2011


Ответы (1)


WebSphere поставляется с собственной версией AspectJ Runtime. Он установлен в:

base_${версия}/lib/aspectjrt.jar

Изменение порядка загрузчика классов с «сначала родитель» на «последний родитель» не сработает — вам придется выбрать другой маршрут.

  1. Создайте общую библиотеку (в консоли администратора WebSphere)
  2. Добавьте свою версию AspectJ в эту общую библиотеку.
  3. Создайте новый загрузчик классов для своего приложения или сервера и прикрепите к нему этот загрузчик классов.

Инструкции о том, как это сделать, можно найти на веб-сайте IBM:

http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/tcws_sharedlib.html

person frankjl    schedule 07.06.2011