2016-06-29 5 views
0

Ich habe Frühjahr Boot-basierte Anwendung ich die Annotation basierten Transaktionsmanagement konfiguriert habe Frühjahr Daten mit JPA Wenn AOP zugegeben Anwendung mit folgendem Fehler gestartet versagtFrühling HibernateJpaAutoConfiguration ProxyTransactionManagementConfiguration konnte nicht erstellt werden, wenn AOP-Protokollierung aktiviert ist

@Bean 
public PerfAnalyzerAspect loggingAspect() { 
    return new PerfAnalyzerAspect(); 
} 

@Around("demoPointcut()") 
public Object perfLoggingAdvice(ProceedingJoinPoint joinPoint) throws Throwable { 

    final StopWatch stopWatch = new StopWatch(joinPoint.getSignature().getName()); 
    stopWatch.start(joinPoint.getSignature().getName()); 

    try { 
     return joinPoint.proceed(); 
    } finally { 
     stopWatch.stop(); 
     logTimeTaken 
    } 

} 


@Pointcut("execution(* com.test.*(..))") 
public void demoPointcut() {} 

2016-06-30 18:16:17,029 INFO com.jpmc.event.central.EventCentralMain main - No active profile set, falling back to default profiles: default 
2016-06-30 18:16:19,861 WARN org.springframework.context.annotation.AnnotationConfigApplicationContext main - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cache.annotation.ProxyCachingConfiguration': BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.jpmc.event.central.listener [Xlint:invalidAbsoluteTypeName] 
2016-06-30 18:16:19,862 ERROR org.springframework.boot.SpringApplication main - Application startup failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cache.annotation.ProxyCachingConfiguration': BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.jpmc.event.central.listener [Xlint:invalidAbsoluteTypeName] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:478) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) 
    at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) 
    at com.jpmc.event.central.EventCentralMain.main(EventCentralMain.java:14) 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cache.annotation.ProxyCachingConfiguration': BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.jpmc.event.central.listener [Xlint:invalidAbsoluteTypeName] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:478) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:368) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) 
    at org.springframework.aop.framework.autoproxy.BeanFactoryAdvisorRetrievalHelper.findAdvisorBeans(BeanFactoryAdvisorRetrievalHelper.java:92) 
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:101) 
    at org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator.findCandidateAdvisors(AnnotationAwareAspectJAutoProxyCreator.java:85) 
    at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.shouldSkip(AspectJAwareAdvisorAutoProxyCreator.java:103) 
    at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(AbstractAutoProxyCreator.java:248) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:988) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:959) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:472) 
    ... 11 more 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.jpmc.event.central.listener [Xlint:invalidAbsoluteTypeName] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.spri 

Entity Manager wie unten

@Bean(name = "entityManagerFactory") 
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() throws SQLException { 
     LocalContainerEntityManagerFactoryBean entityManager = new LocalContainerEntityManagerFactoryBean(); 
     entityManager.setDataSource(dataSource); 
     entityManager.setPackagesToScan(new String[] { env.getProperty(Constants.entityBasePackage) }); 
     entityManager.setJpaVendorAdapter(jpaVendorAdapter()); 
     return entityManager; 
    } 

Teilen Sie uns bitte so konfiguriert ist, gibt es eine Änderung, die ich brauche in der Art und Weise zu tun, lade ich die Konfigurationen

@SpringBootApplication 
@EnableAutoConfiguration 
@EnableAdminServer 
public class MyApp { 

    public static void main(String[] args) { 
     SpringApplication app = new SpringApplication(MyApp.class); 
     app.setBannerMode(Banner.Mode.LOG); 
     app.run(args); 
    } 

} 
+0

Es sieht aus wie Ihr @Pointcut Willen Proxy überall jede öffentliche Methode. Sie müssen genauer sein, und ich wette, es wird danach funktionieren. – LucasP

+0

sieht aus, als hätten Sie eine Zirkelreferenz. Versuchen Sie, Ihren @Bean innerhalb Ihrer PerfAnalyzerAspect-Klasse zu deklarieren? (Können Sie mir die ganze Klasse zeigen?) – Kawada

+0

Ich verstehe zirkuläre Referenzproblem, aber das eigentliche Problem, das ich gegenüberstelle, ist wegen der Transaktionskonfiguration –

Antwort

0

ich mit Annotation basierten Ansatz konfigurieren könnte

@Pointcut("@annotation(com.test.aop.ProfileExecution)") 

jedoch unten genannten Konfiguration noch versagt

@Pointcut("execution(* com.test.*(..))") 
Verwandte Themen