2013-10-19 20 views
3

我一直在試圖得到一個示例@Configuration構建工作(在groovy),所以我可以觸發依賴注入彈出容器,但我得到的是關於-javaagent的錯誤我似乎無法修復爲什麼我不能得到彈簧加載時間編織工作

我有這樣

@Configuration @EnableSpringConfigured // should turn on AnnotationBeanConfigurerAspect @EnableLoadTimeWeaving (aspectjWeaving=AspectJWeaving.ENABLED) // switch on for this context class BeanConfig {

一個beanConfig類,那麼樣品類,我將呼籲新的嘗試,並獲得注入oustide Spring容器中,diSource豆哪裏在上述配置類中聲明

` @Configurable(自動裝配= Autowire.BY_TYPE,dependencyCheck = TRUE) 類ExtDI { @Autowired DISource diSource

def say() { 
    println "ExtDI : diSource set as " + diSource.name 
} 
} 

`

在我取樣類我把這種嘗試和觸發注射

` ... 靜態無效的主要(字串[] args){ AnnotationConfigApplicationContext CTX =新AnnotationCo nfigApplicationContext(/ BeanConfig.class /) ctx.scan( 「com.softwood」) ctx.refresh() ....

//trigger LTW injection 
    ExtDI ext = new ExtDI() 
    ext.say() 

`

類路徑我有上aspectjeaver-1.6.10.jar,aspectjrt-1.6.10.jar,春天-XXX-3.1.4.jars等 我的繼承人的gradle depdency上市

dependencies { compile 'org.codehaus.groovy:groovy-all:2.1.7' compile group: 'commons-collections', name: 'commons-collections', version: '3.2' testCompile group: 'junit', name: 'junit', version: '4.+' compile "org.springframework:spring-core:${spring_version}" compile "org.springframework:spring-beans:${spring_version}" compile "org.springframework:spring-context:${spring_version}" compile "org.springframework:spring-aspects:${spring_version}" compile "org.springframework:spring-aop:${spring_version}" compile "org.springframework:spring-instrument:${spring_version}" compile "org.aspectj:aspectjrt:1.6.10" compile "org.aspectj:aspectjweaver:1.6.10" compile "cglib:cglib:2.2" }

在虛擬機ARGS Eclipse項目運行時,我有 -javaagent:C:/Users/802518659/aspectjweaver-1.6.10.jar

,並試圖用相同的彈簧儀器3.1.4.jar和有同樣的問題。

當我運行該項目,我得到這個錯誤

`

Oct 19, 2013 4:02:40 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh 
INFO: Refreshing org.spring[email protected]492ff1: startup date [Sat Oct 19 16:02:40 BST 2013]; root of context hierarchy 
Oct 19, 2013 4:02:40 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons 
INFO: Pre-instantiating singletons in org.s[email protected]11bedb0: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,beanConfig,willsBean,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,org.springframework.context.annotation.aspectj.SpringConfiguredConfiguration,org.springframework.context.config.internalBeanConfigurerAspect,org.springframework.context.annotation.LoadTimeWeavingConfiguration,loadTimeWeaver,publicBean,privateBean,publicBeanWithDI,myDISource,diTarget]; root of factory hierarchy 
Oct 19, 2013 4:02:40 PM org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons 
INFO: Destroying singletons in org.s[email protected]11bedb0: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,beanConfig,willsBean,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,org.springframework.context.annotation.aspectj.SpringConfiguredConfiguration,org.springframework.context.config.internalBeanConfigurerAspect,org.springframework.context.annotation.LoadTimeWeavingConfiguration,loadTimeWeaver,publicBean,privateBean,publicBeanWithDI,myDISource,diTarget]; root of factory hierarchy 
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loadTimeWeaver' defined in class path resource [org/springframework/context/annotation/LoadTimeWeavingConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.springframework.instrument.classloading.LoadTimeWeaver org.springframework.context.annotation.LoadTimeWeavingConfiguration.loadTimeWeaver()] threw exception; nested exception is java.lang.IllegalStateException: ClassLoader [sun.misc.Launcher$AppClassLoader] does NOT provide an 'addTransformer(ClassFileTransformer)' method. Specify a custom LoadTimeWeaver or start your Java virtual machine with Spring's agent: -javaagent:org.springframework.instrument.jar 
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:581) 
... 

`

它告訴我,我的應用程序不能樂器Java類加載器 - 儘管我啓動用-javaagent:spring-instrument-xxx或aspectjweaver。罐子 - 都失敗

所以我在做什麼錯了 - 這是真正開始打擾我 - 我可以在上下文中得到普通注射工作(沒有LTW),但真的很想得到這個注入容器外工作

我在做什麼錯

回答

相關問題