2016-08-02 7 views
1

私はfollwoing側面があります。Javaの春AOPロガー

@Component 
@Aspect 
public class LoggingAspect { 

    Logger logger = Logger.getLogger(LoggingAspect.class); 

    @AfterReturning(pointcut = "execution(* com.example..*.*(..))", returning = "retVal") 
    public void logAfterMethod(JoinPoint joinPoint, Object retVal) { 
     StringBuffer logMessage = new StringBuffer(); 
     logMessage.append(joinPoint.getTarget().getClass().getName()); 
     logMessage.append("."); 
     logMessage.append(joinPoint.getSignature().getName()); 
     logMessage.append("("); 
     // append args 
     Object[] args = joinPoint.getArgs(); 
     for (int i = 0; i < args.length; i++) { 
      logMessage.append(args[i]).append(","); 
     } 
     if (args.length > 0) { 
      logMessage.deleteCharAt(logMessage.length() - 1); 
     } 

     logMessage.append(")"); 
     if (retVal != null) { 
      logMessage.append(" with return value " + retVal + " of type " 
        + retVal.getClass()); 
     } else { 
      logMessage.append(" with return value null"); 
     } 
     logger.info(logMessage); 
    } 

} 

し、次の豆:

@Bean 
    public LoggingAspect logger(){ 
     return new LoggingAspect(); 
    } 

が、私はそれは私にエラーを与えて自分のアプリケーションを実行したい時はいつでも、私がグーグルを持っているがそれはこれに関連する問題を見つけることができませんでした、多分私は何かが不足しています://

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embeddedServletContainerCustomizerBeanPostProcessor': BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': BeanPostProcessor before instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': BeanPostProcessor before instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException 
Caused by: java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException 
Caused by: java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException 
+0

私はあなたのpom.xmlを見ることができますか?私はそのスキーマがAOPの宣言を含んでいなければならないと思う – tsuda7

答えて

2

主な理由は:nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld

これは、クラスパスにaspectjweaver.jarを追加する必要があることを意味します。

あなたはMavenを使用する場合は、あなたのpom.xmlに依存関係を追加します。

<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver --> 
<dependency> 
    <groupId>org.aspectj</groupId> 
    <artifactId>aspectjweaver</artifactId> 
    <version>1.8.9</version> 
</dependency>