Java:错误创建使用名称“ LoadTimeWeaver”的BEAN



我目前正在从事一个Maven项目,但是每次尝试部署战争时,我都会得到以下例外:

ERROR [DispatcherPortlet:276] Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.context.weaving.AspectJWeavingEnabler#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loadTimeWeaver': Initialization of bean failed;  nested exception is java.lang.IllegalStateException: ClassLoader [org.apache.catalina.loader.WebappClassLoader] does NOT provide an 'addTransformer(ClassFileTransforme r)' 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.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1097)
        at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:661)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:446)
        at org.springframework.web.portlet.FrameworkPortlet.createPortletApplicationContext(FrameworkPortlet.java:356)
        at org.springframework.web.portlet.FrameworkPortlet.initPortletApplicationContext(FrameworkPortlet.java:294)
        at org.springframework.web.portlet.FrameworkPortlet.initPortletBean(FrameworkPortlet.java:268)
        at org.springframework.web.portlet.GenericPortletBean.init(GenericPortletBean.java:120)

我根本不明白何时正确地将所有错误都适当。请在pom.xml

中查看我的声明
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.4</version>
    <configuration>
            <forkMode>once</forkMode>
            <argLine>
                 -javaagent:"pathspring-instrument-3.1.0.RELEASE.jar"
            </argLine>
            <useSystemClassloader>true</useSystemClassloader>
    </configuration>
</plugin>

请指南。

如果您使用的是tomcat捆绑包并在tomcat中启用 load-time-weaving添加弹簧仪器tomcat到tomcat的lib目录,以及在tomcat的META-INF目录中的context.xml中的以下内容:

<Context path="/test">
    <Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>
</Context>

请参阅Tomcat配置上的春季文档。

注意:tomcat的配置根据版本有所不同。

尽管这个问题很久以前就问了,但我仍在回答。其他人可能会发现它有用。如果您使用的是tomcat,请尝试在catalina.bash或catalina.sh.sh for Linux服务器中添加以下内容:

set CATALINA_OPTS=%CATALINA_OPTS% -javaagent:"C:pathtospring-instrument-3.1.1.RELEASE.jar"

请记住,它仅在小于7.0.55的tomcat版本中起作用。之后,它不会接受。您需要在上下文中添加它。xml,如下所述,加载时间 - 网络(apciptj-weaver)在apache tomcat 7.0.55中不起作用。

最新更新