STS не отвечает из-за несовместимости версий - PullRequest
0 голосов
/ 26 апреля 2018

Мой STS 3.9.4.RELEASE (Build: 201804120921, Platform: Eclipse Oxygen.3a 4.7.3a) часто падает из-за:

!ENTRY org.springframework.ide.eclipse.beans.core 1 0 2018-04-26 09:23:26.627
!MESSAGE Error occured processing '/project/WebContent/WEB-INF/context/security.xml'
!STACK 0
java.lang.NoSuchMethodError: org.springframework.beans.factory.support.BeanDefinitionBuilder.setSource(Ljava/lang/Object;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
    at org.springframework.security.config.ConcurrentSessionsBeanDefinitionParser.parse(ConcurrentSessionsBeanDefinitionParser.java:64)
    at org.springframework.security.config.HttpSecurityBeanDefinitionParser.registerConcurrentSessionControlBeansIfRequired(HttpSecurityBeanDefinitionParser.java:261)
    at org.springframework.security.config.HttpSecurityBeanDefinitionParser.parse(HttpSecurityBeanDefinitionParser.java:147)
    at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
    at org.springframework.ide.eclipse.beans.core.internal.model.namespaces.DelegatingNamespaceHandlerResolver$ElementTrackingNamespaceHandler.parse(DelegatingNamespaceHandlerResolver.java:177)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1410)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$ErrorSuppressingBeanDefinitionParserDelegate.parseCustomElement(BeansConfig.java:1434)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1400)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:172)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$ToolingFriendlyBeanDefinitionDocumentReader.doRegisterBeanDefinitions(BeansConfig.java:1363)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:94)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:508)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$2.registerBeanDefinitions(BeansConfig.java:410)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$2.loadBeanDefinitions(BeansConfig.java:394)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$3.call(BeansConfig.java:453)
    at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$3.call(BeansConfig.java:1)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

В моем проекте используются spring-security-core:2.0.8.RELEASE и spring-core:3.2.0.RELEASE, поэтому ясно, что версия Spring, которую использует мой проект, несовместима с версией Spring, которую IDE использует для анализа bean-компонентов. Я попробовал:

  1. удаление проблемного XML-компонента из файлов конфигурации (Project > Properties > Spring > Beans Support > Config Files > Remove above xml)
  2. полное отключение проверки bean-компонента в моем проекте (Project > Properties > Spring > Project Validators > Uncheck Beans Validator)

но ни один из них не помог. Эта ошибка вызывает:

  1. save to freeze (говорит, что пользовательские операции ждут завершения фоновой работы, но их нет) даже после нескольких перезапусков,
  2. Завершение работы STS при сбое / перезапуске (просто 0 прогресса), что вынуждает меня завершить процесс

Есть ли способ разрешить это кому-нибудь?

1 Ответ

0 голосов
/ 02 мая 2018

К сожалению, похоже, что используемые версии библиотек несовместимы с версией Spring, которая используется внутри IDE для создания модели компонентов, поэтому удаление этого проблемного конфигурационного файла Spring XML из свойств проекта является правильным подходом. по этому вопросу.

Но похоже, что ваш XML все еще используется для создания внутренней модели bean-компонентов. Поэтому, пожалуйста, не забудьте отключить механизм автоматического определения файла конфигурации, иначе этот XML-файл будет снова и снова обнаруживаться этим механизмом.

...