java.lang.IllegalStateException:LifecycleProcessor未初始化 - 在通过上下文调用生命周期方法之前调用'refresh'

时间:2011-07-16 07:39:58

标签: hibernate spring

我正在使用maven_spring 3.1.M2 + hibernate 3.5。将<tx:annotation-driven />行放入applicationcontex xml文件后,将发生以下错误:

WARNING: Exception thrown from LifecycleProcessor on context close
java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: Root WebApplicationContext: startup date [Sat Jul 16 13:00:52 IST 2011]; root of context hierarchy
    at org.springframework.context.support.AbstractApplicationContext.getLifecycleProcessor(AbstractApplicationContext.java:350)
    at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1033)
    at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:988)
    at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:534)
    at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:142)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4721)
    at org.apache.catalina.core.StandardContext$4.call(StandardContext.java:5423)
        at org.apache.catalina.core.StandardContext$4.call(StandardContext.java:5402)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

我该怎么做才能解决这个问题?

4 个答案:

答案 0 :(得分:5)

您的pom.xml或lib目录中是否有AspectJ?

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>3.1.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>${aspectj.version}</version>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>${aspectj.version}</version>
</dependency>

我遇到了同样的错误,这解决了我的问题。

答案 1 :(得分:2)

我遇到了同样的问题,解决方案就是Spring罐子 现在,取决于人与人之间正在使用哪个弹簧罐,实际上哪个是缺失的。 对我来说,当我创建项目时,它发生了3-4次。有时候我有所有的Spring jar而不是Spring.jar 下次Spring Aspect jar丢失了。而有些时候我已经确定了所有但是错过了安全性。但我总是通过小心地放置Spring罐子来修复它。 无需寻找任何其他原因。

希望帮助和专注于只有春天的罐子,而不是其他人。快乐的编码家伙!!

答案 2 :(得分:1)

我同时使用jersey-spring3spring-core时遇到了这个问题。 jersey-spring3.jar使用自己的Spring库版本,因此要使用你想要的版本,你需要手动排除这些库。

<dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-spring3</artifactId>
        <version>2.22.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
            </exclusion>
            <exclusion>
                <artifactId>bean-validator</artifactId>
                <groupId>org.glassfish.hk2.external</groupId>
            </exclusion>
        </exclusions>
    </dependency>

答案 3 :(得分:0)

解决冲突版本pom.xml中的spring依赖项,可能是各种版本更改类名或添加其他依赖项中不兼容的功能。