2017-12-01 17 views
0

注釈のみを使用してXMLなしでセットアップされた大きなSpringアプリケーションがあります。私はこのアプリケーションにいくつかの変更を加え、ほぼ同じコードでなければならないものとは別のプロジェクトを持っています。しかし、この別のプロジェクトでは、Togglzは私が設定したTogglzConfigファイルの代わりに何らかのデフォルト設定を使用しているようです。私のSpringアプリケーションが実行されているときに、TogglzConfigファイルが使用されていない

何かが間違っていた最初の兆候は、私がTogglzコンソールにアクセスできないときでした。 Togglezサイトに表示されているように、自分の設定が誰でも使用できるように設定されているにもかかわらず、403 Forbiddenエラーが表示されます。フィーチャクラスにもかかわらずいくつかの機能が含まれていても、フィーチャクラスのリストが表示されていましたが、フィーチャクラスのリストを表示しようとしましたが、FeatureContext.getFeatureManager()。getFeatures()これが、何らかのデフォルトを使用していると思う理由です。

TogglzConfiguration.java

public enum Features implements Feature { 

    FEATURE1, 

    FEATURE2, 

    FEATURE3, 

    FEATURE4, 

    FEATURE5; 

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

TogglzConfiguration.java

@Component 
public class TogglzConfiguration implements TogglzConfig { 

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

    public StateRepository getStateRepository() { 
    File properties = [internal call to property file]; 
    try { 
     return new FileBasedStateRepository(properties); 
    } catch (Exception e) { 
     throw new TogglzConfigException("Error getting Togglz configuration from " + properties + ".", e); 
    } 
    } 

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

SpringConfiguration.java

@EnableTransactionManagement 
@Configuration 
@ComponentScan(basePackages = { "root package for the entire project" }, excludeFilters = 
    @ComponentScan.Filter(type=FilterType.ANNOTATION, value=Controller.class)) 
public class SpringConfiguration { 

    @Bean 
    public TransformerFactory transformerFactory() { 
     return TransformerFactory.newInstance(); 
    } 

    @Bean 
    public DocumentBuilderFactory documentBuilderfactory() { 
     return DocumentBuilderFactory.newInstance(); 
    } 

    @Bean 
    public RestTemplate restTemplate() { 
     return new RestTemplate(); 
    } 
} 

私のプロジェクトは@Componentアノテーションで設定し、他の豆の束を見つけました。問題がこのコンポーネントが全く拾われていないかどうか、またはTogglzが単に何らかの理由でそれを使用していないかどうかはわかりません。私はFeatureContext.getFeaturemanager()によって返されたFeatureManagerの名前を印刷しようとしましたが、これはFallbackTestFeatureManagerです。これは自分の設定を全く使用していないという私の疑惑を確認するようです。

誰でも私が確認できるものはありますか?私はアイデアから脱却しました。特に、これは私のマシン上のほぼ完全に同じIntelliJプロジェクトで動作しています。私は、Togglzの設定やSpringの設定とは何が違うのか分かりません。あなたの助けを前にありがとう。

答えて

0

私はついに電球の瞬間を抱き、この問題を解決しました。他の誰かが似たような問題を抱えている場合は、ToggleテストとJUnitの依存関係を自分のプロジェクトに追加していて、テストスコープに制限していないのは間違いです。私はそのサイトの一部を見落としました。そのスコープなし

<!-- Togglz testing support --> 
<dependency> 
    <groupId>org.togglz</groupId> 
    <artifactId>togglz-testing</artifactId> 
    <version>2.5.0.Final</version> 
    <scope>test</scope> 
</dependency> 

、私はこれらは私がデフォルトのテスト構成で作成Togglzの設定を上書きし、それは私の問題を引き起こしていたと仮定します。

関連する問題