2011-07-16 47 views
13

我正在使用maven_spring 3.1.M2 + hibernate 3.5。有一次,我把線<tx:annotation-driven />我applicationcontex XML文件中,將出現follwoing錯誤:java.lang.IllegalStateException:LifecycleProcessor未初始化 - 在通過上下文調用生命週期方法之前調用'refresh'

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) 

我應該怎麼做來解決這個問題?

+0

請:a)你的背景是什麼樣的? b)你的上下文是如何開始的(編程式,webapp等)? –

+0

你可能會缺少一個類,就像我在這裏:http://stackoverflow.com/q/8330414/。還有其他例外嗎? – Josh

回答

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> 

我有同樣的錯誤,這解決了我的問題。

+0

不工作,甚至已經有: spring-aspects-3.2.1.RELEASE.jar aspectjrt-1.7.1.RELEASE.jar aspectjweaver-1.7.1.RELEASE.jar – Osify

+0

我想看看你的'pom。 xml'(僅依賴關係),因爲我相信依賴關係樹中有一個失敗(多個或不是「合適」的AspectJ和Spring組合)。 – ChrLipp

+0

現在我已經刪除了所有內容並重新開始執行pom,並且沒有更多的錯誤。 我得到了許多項目的依賴關係,可能是造成的,但不知道如何指定告訴他們...... – Osify

2

我有同樣的問題,並且解決方案是Spring jars 現在,它取決於他的項目正在使用的人員,以及實際上哪個人失蹤。 對我來說,當我創建項目時發生了3-4次。有時候我有所有的Spring jar但不是Spring.jar 下一次Spring Aspect jar丟失了。而另一些時候我確定了所有的東西,但錯過了安全。但我總是通過小心放置彈簧罐來固定它。 無需查找任何其他原因。

希望幫助和專注於只有春天罐子而不是其他人。快樂的編碼傢伙!

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> 
0

解決衝突版本的Spring的依賴在pom.xml,可爲各種版本更改類名或添加的功能,在其他依賴有配伍禁忌。

相關問題