Ошибка инициализации контекста - BeanCreationNotAllowedException - PullRequest
1 голос
/ 21 сентября 2011

Spring Context моего приложения не может инициализироваться.Может кто-нибудь помочь мне понять, почему он не работает и как это исправить?

Ниже приведены предупреждения и сообщения об ошибках, которые я получаю:

[WARN] Сбой вызова метода уничтожения 'shutdown' для компонента с именем 'cxf'

org.springframework.beans.factory.BeanCreationNotAllowedException: Ошибка создания компонента с именем entityManagerFactory: создание компонента Singleton не разрешено, пока синглтоны этой фабрики находятся в процессе уничтожения (не запрашивайте компонент из компонента BeanFactory в реализации метода уничтожения!)

org.springframework.web.context.ContextLoader [ОШИБКА] Ошибка инициализации контекста

<bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl" destroy-method="shutdown"/>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
       <property name="persistenceUnitName" value="${persistence.unit}"/>
       <property name="dataSource" ref="pooledDs"/>
       <property name="jpaVendorAdapter">
           <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
               <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect"/>
               <property name="showSql" value="false"/>
               <property name="generateDdl" value="false"/>
           </bean>
       </property>    
</bean> 

Ответы [ 2 ]

4 голосов
/ 21 сентября 2011

Сайт CXF не включает вызов destroy-method в своих примерах конфигурации, поэтому кажется, что это неверная конфигурация. Подробности смотрите на этой странице: http://cxf.apache.org/docs/interceptors.html.

Я также нашел средство отслеживания ошибок для этой проблемы: https://issues.apache.org/jira/browse/CXF-2164. Похоже, что метод destroy не вызывался неявно в более ранних версиях CXF, но это было исправлено в v2.2.11.

Итак, я бы предложил установить хотя бы эту версию и просто указать <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl" /> в вашей конфигурации.

0 голосов
/ 03 октября 2012

В моем случае у меня была та же проблема с версией 2.5.0, но это была моя ошибка.

У меня был неверный компонент в контексте.

Подробно: у меня был Spring MVC Controller (с именем OrderController), помеченный @Controller без определенного имени (управляемая аннотация).На другом CXF требуется конфигурация xml AFAIK, поэтому я назвал bean, используя конфигурацию java (используя @Bean), как orderController, и каким-то образом, когда cxf был инициализирован, Spring использовал этот неправильный контроллер MVC, и он вышел из строя при ошибке, указанной выше.

org.реализация метода!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...