必须从Java代理开始才能使用InstrumentationLoadTimeWeaver。请参阅Spring文档

问题描述 投票:0回答:1

springframework.beans.factory.BeanCreationException:在com.navin.friends.config.JPAConfig中定义名为'entityManagerFactory'的bean时出错:init方法的调用失败;嵌套异常是java.lang.IllegalStateException:必须从Java代理开始才能使用InstrumentationLoadTimeWeaver。请参阅Spring文档。在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)〜[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE] org.springframework.beans.factory。 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java)中的support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)〜[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE] :482)〜[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE] org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:306)〜[spring-beans -4.2.3.RELEASE.jar:4.2.3.RELEASE]在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)〜[弹簧豆-4.2.3.RELEASE.jar: 4.2.3.RELEASE]在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)〜[sprin org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)〜[spring-beans-4.2.3.RELEASE]中的g-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]的.jar:4.2.3.RELEASE]在org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1051)〜[弹簧上下文4.2.3.RELEASE.jar:4.2.3.RELEASE]在有机.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:828)〜[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(在org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)〜[spring-web]中的AbstractApplicationContext.java:537)〜[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE]在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)〜[spring-web-4.2.3.RELEASE.jar:4.2。 3.RELE ASE]在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)[弹簧网络4.2.3.RELEASE.jar:4.2.3.RELEASE]在org.apache.catalina.core.StandardContext .listenerStart(StandardContext.java:4791)[tomcat-embed-core-7.0.30.jar:7.0.30] org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)[tomcat-embed- core-7.0.30.jar:7.0.30] org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)[tomcat-embed-core-7.0.30.jar:7.0.30] at org .apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1559)[tomcat-embed-core-7.0.30.jar:7.0.30] org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1549)[tomcat-embed-core-7.0.30.jar:7.0.30] java.util.concurrent.FutureTask.run(FutureTask.java:266)[na:1.8.0_91] java .util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[na:1.8.0_91] at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor。 java:617)[na:1.8.0_91] at java.lang.Thread.run(Thread.java:745)[na:1.8.0_91]引起:java.lang.IllegalStateException:必须以Java代理开始才能使用InstrumentationLoadTimeWeaver 。请参阅Spring文档。在org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver.addTransformer(InstrumentationLoadTimeWeaver.java:88)〜[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE] org.springframework.orm.jpa.persistenceunit。 org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactory(PersistenceProvider.java:348)中的SpringPersistenceUnitInfo.addTransformer(SpringPersistenceUnitInfo.java:82)〜[spring-orm-4.2.3.RELEASE.jar:4.2.3.RELEASE]〜 [eclipselink-2.5.0.jar:2.5.0.v20130507-3faac2b]在org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)〜[spring-orm-4.2.3.RELEASE.jar: 4.2.3.RELEASE] org.springframework上的org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)〜[spring-orm-4.2.3.RELEASE.jar:4.2.3.RELEASE]。 beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowire CapableBeanFactory.java:1637)〜[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE] org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)〜[spring -beans-4.2.3.RELEASE.jar:4.2.3.RELEASE] ...省略了21个常见帧2016年6月1日下午5:53:26 org.apache.catalina.core.StandardContext listenerStart SEVERE:异常发送上下文初始化事件侦听器org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException的实例:在com.navin.friends.config.JPAConfig中定义名称为'entityManagerFactory'的bean时出错:init方法的调用失败;嵌套异常是java.lang.IllegalStateException:必须从Java代理开始才能使用InstrumentationLoadTimeWeaver。请参阅Spring文档。在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)在org.springframework.beans.factory .support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:306)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:230)org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)at org org.springframework.context.s中的.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1051) upport.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:828)org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446) org.apringframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)位于org.apache.catalina.core.StandardContext.listenerStart的org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) (StandardContext.java:4791)在org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)在org.apache。 catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1559)在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1549)在java.util.concurrent.FutureTask.run(FutureTask。 java的:26 6)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)在java.util.concurrent.ThreadPoolExecutor中$ Worker.run(ThreadPoolExecutor.java:617)在java.lang.Thread.run(Thread.java :745)引起:java.lang.IllegalStateException:必须从Java代理开始才能使用InstrumentationLoadTimeWeaver。请参阅Spring文档。 org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver.addTransformer(InstrumentationLoadTimeWeaver.java:88)位于org.eclipse.persistence.jpa.PersistenceProvider的org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo.addTransformer(SpringPersistenceUnitInfo.java:82) .orgateContainerEntityManagerFactory(PersistenceProvider.java:348)org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)at org。 springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)... 21更多

Jun 01, 2017 5:53:26 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Jun 01, 2017 5:53:26 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/remember-friends] startup failed due to previous errors
Jun 01, 2017 5:53:26 PM org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
Jun 01, 2017 5:53:26 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/remember-friends] appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak.
Jun 01, 2017 5:53:26 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-9090"]

    @Bean
        public LocalContainerEntityManagerFactoryBean entityManagerFactory() throws IOException {
            EclipseLinkJpaVendorAdapter vendorAdapter = new EclipseLinkJpaVendorAdapter();
            vendorAdapter.setShowSql(true);
            LocalContainerEntityManagerFactoryBean entityManagerFacotryBean= new LocalContainerEntityManagerFactoryBean();
            entityManagerFacotryBean.setJpaVendorAdapter(vendorAdapter);
            entityManagerFacotryBean.setDataSource(getDataSource());
            entityManagerFacotryBean.setPackagesToScan("com.navin.friends.domain.entity");
            entityManagerFacotryBean.setJpaProperties(getJPAProperties());
            entityManagerFacotryBean.setLoadTimeWeaver(new InstrumentationLoadTimeWeaver());
            entityManagerFacotryBean.setPersistenceUnitName("friends");
            entityManagerFacotryBean.setJpaDialect(new EclipseLinkJpaDialect());
            return entityManagerFacotryBean;

        }
java spring-mvc agent
1个回答
0
投票

你需要包括一个spring-instrument.jar代理:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.4</version>
    <configuration>
            <forkMode>once</forkMode>
            <argLine>
                 -javaagent:"${settings.localRepository}/org/springframework/spring-instrument/${spring.framework.version}/spring-instrument-${spring.framework.version}.jar"
        </argLine>
            <useSystemClassloader>true</useSystemClassloader>
    </configuration>
</plugin>

(用您的值替换$ {spring.framework.version}和$ {settings.localRepository})

当然还有AspectJ Maven插件:

<plugin>
     <groupId>org.codehaus.mojo</groupId>
     <artifactId>aspectj-maven-plugin</artifactId>
     <version>1.3</version>
     <executions>
         <execution>
             <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>                     
             <goals>
                 <goal>compile</goal>       <!-- use this goal to weave all your main classes -->
                 <goal>test-compile</goal>  <!-- use this goal to weave all your test classes -->
             </goals>
         </execution>
    </executions>
</plugin>

要使AspectJ工作,您还需要添加一个aspectjrt依赖项:

<dependency>
  <groupId>org.aspectj</groupId>
  <artifactId>aspectjrt</artifactId>
  <version>${aspectjrt.version}</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.