Как устранить ошибку «Невозможно найти указанный аспект «AspectLogger»» в настройке AspectJ LTW?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как устранить ошибку «Невозможно найти указанный аспект «AspectLogger»» в настройке AspectJ LTW?

Сообщение Anonymous »

Я пытаюсь настроить переплетение времени загрузки AspectJ (LTW) для регистрации времени выполнения метода в моем веб-приложении Java. Это веб-приложение, написанное с использованием сервлетов, jsp (без использования Spring) и развернутое на jBoss EAP 7.2, написанное с использованием сервлетов и jsp (без использования Spring).
Я создал аспект и упаковал его. в файл JAR вместе с файлом конфигурации aop.xml. Однако при запуске приложения я сталкиваюсь со следующей ошибкой: Невозможно найти указанный аспект com.sample.AspectLogger.
Вот полная версия войдите в консоль jBoss:

Код: Выделить всё

2024-08-05 09:45:05,159 ERROR [stderr] (MSC service thread 1-2) [ModuleClassLoader@17497425] info AspectJ Weaver Version 1.9.2 built on Wednesday Oct 24, 2018 at 15:43:33 GMT
2024-08-05 09:45:05,160 ERROR [stderr] (MSC service thread 1-2) [ModuleClassLoader@17497425] info register classloader org.jboss.modules.ModuleClassLoader@17497425
2024-08-05 09:45:05,161 ERROR [stderr] (MSC service thread 1-2) [ModuleClassLoader@17497425] info using configuration /C:/apps/jboss-eap-7.2.0/standalone/lib/aop.xml
2024-08-05 09:45:05,163 ERROR [stderr] (MSC service thread 1-2) [ModuleClassLoader@17497425] info register aspect com.sample.AspectLogger
2024-08-05 09:45:05,164 ERROR [stderr] (MSC service thread 1-2) [ModuleClassLoader@17497425] error The specified aspect 'com.sample.AspectLogger' cannot be found
Вот что я сделал на данный момент.
1. Структура проекта:
Изображение

AspectLogger.java

Код: Выделить всё

package com.sample;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;

public class AspectLogger {
@Around("execution(* com.webservices..*(..))")
public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {

long start = System.currentTimeMillis();

Object proceed = joinPoint.proceed();

long executionTime = System.currentTimeMillis() - start;
System.out.println(joinPoint.getSignature() + " executed in " + executionTime + "ms");

return proceed;
}
}

aop.xml Чтобы упаковать аспект в виде файла jar, я экспортирую проект как jar в Eclipse, в результате чего создается jar со структурой ниже. (Нужно ли мне использовать команду ajc для компиляции и упаковки? Если да, то пожалуйста, предоставьте мне подходящую команду. Пробовал разные аргументы с помощью ajc, чтобы соединить AspectLogger.java с AspectLogger.class, но все равно получил ту же ошибку.)

Код: Выделить всё

C:.
|   .classpath
|   .project
|
+---com
|   \---sample
|           AspectLogger.class
|
+---lib
|       aspectj-1.9.2.jar
|       aspectjrt-1.9.2.jar
|       aspectjtools-1.9.2.jar
|       aspectjweaver-1.9.2.jar
|
\---META-INF
aop.xml
MANIFEST.MF
Аргумент агента Java:
Я использую следующий аргумент JVM, чтобы включить переплетение AspectJ:

Код: Выделить всё

set "ASPECT_HOME=C:\apps\jboss-eap-7.2.0\standalone\lib"

set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.system.pkgs=org.aspectj -Dorg.aspectj.weaver.loadtime.debug=true -Dorg.aspectj.weaver.loadtime.configuration=%ASPECT_HOME%\aop.xml -Xbootclasspath/a:%ASPECT_HOME%\aspectjweaver-1.9.2.jar:%ASPECT_HOME%\SampleLogger.jar -Dorg.aspectj.tracing.enabled=false -Dorg.aspectj.tracing.factory=default"

rem Uncomment below line to enable Aspect load-time weaving
set "JAVA_OPTS=%JAVA_OPTS% -javaagent:%ASPECT_HOME%\aspectjweaver-1.9.2.jar -cp %ASPECT_HOME%\*"
Вот содержимое моего %ASPECT_HOME%
Изображение

Когда я запускаю jboss, сервер запускается, и все мои веб-приложения успешно развертываются. Несмотря на то, что я указал aop.xml в -Dorg.aspectj.weaver.loadtime.configuration=%ASPECT_HOME%\aop.xml , я все равно сохранил его в META-INF на всякий случай. Если удалить его в параметрах JVM и иметь только aop.xml в META-INF, он даже не будет найден Weaver, и в журналах jboss ничего не появится.
Пожалуйста, помогите мне определить, что проблема в том, чтобы помочь запустить регистратор.

Подробнее здесь: https://stackoverflow.com/questions/788 ... be-found-i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»