2016-12-21 2 views
0

Я пытаюсь добавить togglz моей загрузки Спринта приложение, однако при запуске я получаю следующее сообщение об ошибке:Spring загрузка Togglz - не квалификационного боб ошибки типа UserProvider

2016-12-21 12:41:34.482 ERROR 43583 --- [ost-startStop-1] o.s.b.c.embedded.tomcat.TomcatStarter : Error starting Tomcat context: org.springframework.beans.factory.UnsatisfiedDependencyException 
2016-12-21 12:41:34.530 WARN 43583 --- [ restartedMain] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt 
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.togglz.core.user.UserProvider] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1326) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE] 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1072) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE] 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:967) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE] 
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:813) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE] 
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE] 
    ... 138 common frames omitted 
Wrapped by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'featureManager' defined in class path resource [org/togglz/spring/boot/autoconfigure/TogglzAutoConfiguration$FeatureManagerConfiguration.class]: Unsatisfied dependency expressed through constructor argument with index 2 of type [org.togglz.core.user.UserProvider]: : No qualifying bean of type [org.togglz.core.user.UserProvider] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.togglz.core.user.UserProvider] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 

Похоже, что проблема в конфигурации, но я, кажется, все на месте, как это рекомендовано в https://www.togglz.org/documentation/spring-boot-starter.html

Моя установка выглядит следующим образом:

package com.togglz; 

import java.io.File; 

import org.springframework.stereotype.Component; 
import org.togglz.core.Feature; 
import org.togglz.core.manager.TogglzConfig; 
import org.togglz.core.repository.StateRepository; 
import org.togglz.core.repository.file.FileBasedStateRepository; 
import org.togglz.core.user.FeatureUser; 
import org.togglz.core.user.SimpleFeatureUser; 
import org.togglz.core.user.UserProvider; 

@Component 
public class TogglzConfiguration implements TogglzConfig { 

    public Class<? extends Feature> getFeatureClass() { 
     return Features.class; 
    } 

    public StateRepository getStateRepository() { 
     return new FileBasedStateRepository(new File("application-local.properties")); 
    } 

    public UserProvider getUserProvider() { 
     return new UserProvider() { 
      @Override 
      public FeatureUser getCurrentUser() { 
       return new SimpleFeatureUser("admin", true); 
      } 
     }; 

    } 
} 

и

package com.togglz; 

import org.springframework.stereotype.Component; 
import org.togglz.core.Feature; 
import org.togglz.core.annotation.Label; 
import org.togglz.core.context.FeatureContext; 


    @Component 
    public enum Features implements Feature { 

     @Label("Feature1") 
     FEATURE_ONE, 

     @Label("Feature2") 
     FEATURE_TWO; 

     public boolean isActive() { 
      return FeatureContext.getFeatureManager().isActive(this); 
     } 
    } 

со своими свойствами файл приложения, содержащий следующее:

togglz: 
    enabled: true 
    feature-enums: com.togglz.Features 
    FEATURE_ONE: true 
    FEATURE_TWO: false 

Кто-нибудь еще возникла эта проблема или есть какие-либо идеи, как решить это? Я бы ожидал, что мой getUserProvider() будет обрабатывать вещи, но, возможно, нет.

ответ

0

Похоже, что обновление версии Spring Boot сделало трюк ...

Смежные вопросы