Java.lang.IllegalStateException: LifecycleProcessor не инициализирован - вызовите 'refresh' перед вызовом методов жизненного цикла через контекст
Я использую maven_spring 3.1.M2 + hibernate 3.5. После того, как я поместил строку <tx:annotation-driven />
в мой XML файл applicationcontex, возникнет следующая ошибка:
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)
Что мне делать, чтобы исправить это?
Ответы
Ответ 1
У вас есть AspectJ в вашем pom.xml или в вашем lib-каталоге?
<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>
У меня была такая же ошибка, и это решило мою проблему.
Ответ 2
У меня была та же проблема, и решение - это Spring банки
Теперь это зависит от человека к человеку, который использует его проект, а на самом деле отсутствует.
Для меня это произошло 3-4 раза, когда я создал проект. Когда-то у меня был все Spring jar, но не Spring.jar
В следующий раз Spring Аспектный банд отсутствовал. в то время как в какой-то другой момент я убедился в безопасности, но пропустил безопасность. Но я всегда исправлял это, аккуратно размещая банки Spring.
Нет необходимости искать другую причину.
Надейтесь, что помогите и сосредоточьтесь только на Spring баночках, а не на других. Счастливые Кодирующие парни!!
Ответ 3
Я столкнулся с этой проблемой при использовании как jersey-spring3
, так и spring-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>
Ответ 4
разрешить конфликтную версию зависимостей spring в pom.xml
, может быть в другом имени класса изменения версии или добавить функцию, которая в других зависимостях имеет несовместимость.