2016-09-22 83 views
0

我使用gitlab作爲config remote設置了一個本地spring啓動配置服務器。它運行良好。我建立了一個配置服務器客戶端web應用程序,它可以成功連接到這個配置服務器,並通過這個配置服務器從git repro獲取配置。但現在我想對我的配置服務器進行集成測試,並將客戶端web應用程序移至配置服務器的測試目錄,並將客戶端的spring.application.config.name修改爲「configserver-tes」,以便客戶端web應用程序不會讀取主類路徑中的默認application.yml並在測試類路徑中讀取bootstrap.yml。在這種情況下,兩個Web應用程序都可以從不同的上下文和端口開始。問題是客戶端Web應用程序無法從配置服務器讀取配置。你能告訴我我該如何解決這個問題?或者我該如何調試它。謝謝。爲什麼春季配置服務器客戶端失敗從配置服務器獲取配置?

錯誤日誌:

2016-09-22 16:49:06,477 DEBUG jndi [main] Created initial context delegate for local namespace:[email protected] 
2016-09-22 16:49:06,477 DEBUG jndi [main] Looking up name="SPRINGCLOUDCONFIGSERVERBOOTSTRAP" 
2016-09-22 16:49:06,477 DEBUG o.s.j.JndiPropertySource [main] JNDI lookup for name [SPRINGCLOUDCONFIGSERVERBOOTSTRAP] threw NamingException with message: null. Returning null. 
2016-09-22 16:49:06,477 TRACE o.s.b.a.c.OnPropertyCondition [main] Condition OnPropertyCondition on org.springframework.cloud.config.server.bootstrap.ConfigServerBootstrapConfiguration$LocalPropertySourceLocatorConfiguration did not match due to @ConditionalOnProperty missing required properties spring.cloud.config.server.bootstrap 
2016-09-22 16:49:06,477 DEBUG o.s.b.f.s.DefaultListableBeanFactory [main] Returning cached instance of singleton bean 'autoConfigurationReport' 
2016-09-22 16:49:06,521 DEBUG o.s.c.t.c.AnnotationAttributesReadingVisitor [main] Failed to class-load type while reading annotation metadata. This is a non-fatal error, but certain annotation metadata may be unavailable. 
java.lang.ClassNotFoundException: org.springframework.retry.annotation.EnableRetry 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[?:1.8.0_101] 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_101] 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[?:1.8.0_101] 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_101] 
     at org.springframework.core.type.classreading.RecursiveAnnotationAttributesVisitor.visitEnd(RecursiveAnnotationAttributesVisitor.java:47) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.asm.ClassReader.readAnnotationValues(ClassReader.java:1802) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.asm.ClassReader.accept(ClassReader.java:642) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.asm.ClassReader.accept(ClassReader.java:508) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:64) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:98) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:102) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:93) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.asSourceClass(ConfigurationClassParser.java:621) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.asSourceClass(ConfigurationClassParser.java:593) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser$SourceClass.getMemberClasses(ConfigurationClassParser.java:750) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.processMemberClasses(ConfigurationClassParser.java:328) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:249) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:232) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:199) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:168) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:321) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:243) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:273) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:98) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:678) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:520) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:140) [spring-cloud-context-1.1.1.RELEASE.jar:1.1.1.RELEASE] 
     at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:84) [spring-cloud-context-1.1.1.RELEASE.jar:1.1.1.RELEASE] 
     at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:62) [spring-cloud-context-1.1.1.RELEASE.jar:1.1.1.RELEASE] 
     at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.boot.context.event.EventPublishingRunListener.publishEvent(EventPublishingRunListener.java:111) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:65) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:330) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at com.yrd.configserver.test.ConfigserverClient.main(ConfigserverClient.java:30) [test-classes/:?] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101] 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_101] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_101] 
     at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_101] 
     at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:?] 
2016-09-22 16:49:06,542 TRACE o.s.b.a.c.OnClassCondition [main] Condition OnClassCondition on org.springframework.cloud.config.client.ConfigServiceBootstrapConfiguration$RetryConfiguration did not match due to required @ConditionalOnClass classes not found: org.springframework.retry.annotation.Retryable,org.aspectj.lang.annotation.Aspect 
2016-09-22 16:49:06,543 DEBUG o.s.b.f.s.DefaultListableBeanFactory [main] Returning cached instance of singleton bean 'autoConfigurationReport' 
2016-09-22 16:49:06,559 TRACE o.s.b.a.c.OnClassCondition [main] Condition OnClassCondition on org.springframework.cloud.bootstrap.encrypt.EncryptionBootstrapConfiguration matched due to @ConditionalOnClass classes found: org.springframework.security.crypto.encrypt.TextEncryptor 
2016-09-22 16:49:06,559 DEBUG o.s.b.f.s.DefaultListableBeanFactory [main] Returning cached instance of singleton bean 'autoConfigurationReport' 
2016-09-22 16:49:06,570 TRACE o.s.b.a.c.OnClassCondition [main] Condition OnClassCondition on org.springframework.cloud.bootstrap.encrypt.EncryptionBootstrapConfiguration$VanillaEncryptionConfiguration did not match due to required @ConditionalOnMissing classes found: org.springframework.security.rsa.crypto.RsaSecretEncryptor 
2016-09-22 16:49:06,570 DEBUG o.s.b.f.s.DefaultListableBeanFactory [main] Returning cached instance of singleton bean 'autoConfigurationReport' 
2016-09-22 16:49:06,570 TRACE o.s.b.a.c.OnClassCondition [main] Condition OnClassCondition on org.springframework.cloud.bootstrap.encrypt.EncryptionBootstrapConfiguration$RsaEncryptionConfiguration matched due to @ConditionalOnClass classes found: org.springframework.security.rsa.crypto.RsaSecretEncryptor 
2016-09-22 16:49:06,571 DEBUG o.s.b.f.s.DefaultListableBeanFactory [main] Returning cached instance of singleton bean 'autoConfigurationReport' 
2016-09-22 16:49:06,571 TRACE o.s.c.e.PropertySourcesPropertyResolver [main] getProperty("encrypt.keyStore.location", String) 
2016-09-22 16:49:06,571 DEBUG o.s.c.e.PropertySourcesPropertyResolver [main] Searching for key 'encrypt.keyStore.location' in [bootstrap] 
2016-09-22 16:49:06,571 DEBUG o.s.c.e.PropertySourcesPropertyResolver [main] Searching for key 'encrypt.keyStore.location' in [servletConfigInitParams] 
2016-09-22 16:49:06,571 DEBUG o.s.c.e.PropertySourcesPropertyResolver [main] Searching for key 'encrypt.keyStore.location' in [servletContextInitParams] 
2016-09-22 16:49:06,571 DEBUG o.s.c.e.PropertySourcesPropertyResolver [main] Searching for key 'encrypt.keyStore.location' in [jndiProperties] 
2016-09-22 16:49:06,571 DEBUG o.s.j.JndiTemplate [main] Looking up JNDI object with name [java:comp/env/encrypt.keyStore.location] 
2016-09-22 16:49:06,571 DEBUG jndi [main] InitialContextFactory.getInitialContext() 
2016-09-22 16:49:06,571 DEBUG jndi [main] Created initial context delegate for local namespace:[email protected] 
] not found - trying original name [SPRINGCLOUDCONFIGSERVERBOOTSTRAP]. javax.naming.NameNotFoundException; remaining name 'env/SPR 
INGCLOUDCONFIGSERVERBOOTSTRAP' 
2016-09-22 16:49:06,477 DEBUG o.s.j.JndiTemplate [main] Looking up JNDI object with name [SPRINGCLOUDCONFIGSERVERBOOTSTRAP] 
2016-09-22 16:49:06,477 DEBUG jndi [main] InitialContextFactory.getInitialContext() 
2016-09-22 16:49:06,477 DEBUG jndi [main] Created initial context delegate for local namespace:org.eclipse.jetty.jndi.local.localC 
[email protected] 
2016-09-22 16:49:06,477 DEBUG jndi [main] Looking up name="SPRINGCLOUDCONFIGSERVERBOOTSTRAP" 
2016-09-22 16:49:06,477 DEBUG o.s.j.JndiPropertySource [main] JNDI lookup for name [SPRINGCLOUDCONFIGSERVERBOOTSTRAP] threw Naming 
Exception with message: null. Returning null. 
2016-09-22 16:49:06,477 TRACE o.s.b.a.c.OnPropertyCondition [main] Condition OnPropertyCondition on org.springframework.cloud.conf 
ig.server.bootstrap.ConfigServerBootstrapConfiguration$LocalPropertySourceLocatorConfiguration did not match due to @ConditionalOn 
Property missing required properties spring.cloud.config.server.bootstrap 
2016-09-22 16:49:06,477 DEBUG o.s.b.f.s.DefaultListableBeanFactory [main] Returning cached instance of singleton bean 'autoConfigu 
rationReport' 
2016-09-22 16:49:06,521 DEBUG o.s.c.t.c.AnnotationAttributesReadingVisitor [main] Failed to class-load type while reading annotati 
on metadata. This is a non-fatal error, but certain annotation metadata may be unavailable. 
java.lang.ClassNotFoundException: org.springframework.retry.annotation.EnableRetry 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[?:1.8.0_101] 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_101] 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[?:1.8.0_101] 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_101] 
     at org.springframework.core.type.classreading.RecursiveAnnotationAttributesVisitor.visitEnd(RecursiveAnnotationAttributesV 
isitor.java:47) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.asm.ClassReader.readAnnotationValues(ClassReader.java:1802) [spring-core-4.2.6.RELEASE.jar:4.2.6.RE 
LEASE] 
     at org.springframework.asm.ClassReader.accept(ClassReader.java:642) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.asm.ClassReader.accept(ClassReader.java:508) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:64) [spring-core-4.2.6 
.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.ja 
va:98) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory. 
java:102) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.ja 
va:93) [spring-core-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.asSourceClass(ConfigurationClassParser.java:621) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.asSourceClass(ConfigurationClassParser.java:593) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser$SourceClass.getMemberClasses(ConfigurationClassParser.java:750) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.processMemberClasses(ConfigurationClassParser.java:328) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:249) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:232) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:199) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:168) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:321) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:243) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:273) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:98) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:678) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:520) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:140) [spring-cloud-context-1.1.1.RELEASE.jar:1.1.1.RELEASE] 
     at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:84) [spring-cloud-context-1.1.1.RELEASE.jar:1.1.1.RELEASE] 
     at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:62) [spring-cloud-context-1.1.1.RELEASE.jar:1.1.1.RELEASE] 
     at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121) [spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE] 
     at org.springframework.boot.context.event.EventPublishingRunListener.publishEvent(EventPublishingRunListener.java:111) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:65) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:330) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] 
     at com.yrd.configserver.test.ConfigserverClient.main(ConfigserverClient.java:30) [test-classes/:?] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101] 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_101] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_101] 
     at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_101] 
     at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) [idea_rt.jar:?] 
2016-09-22 16:49:06,542 TRACE o.s.b.a.c.OnClassCondition [main] Condition OnClassCondition on org.springframework.cloud.config.client.ConfigServiceBootstrapConfiguration$RetryConfiguration did not match due to required @ConditionalOnClass classes not found: org.springframework.retry.annotation.Retryable,org.aspectj.lang.annotation.Aspect 
2016-09-22 16:49:06,543 DEBUG o.s.b.f.s.DefaultListableBeanFactory [main] Returning cached instance of singleton bean 'autoConfigurationReport' 
+0

錯誤說'拋出java.lang.ClassNotFoundException:org.springframework.retry.annotation.EnableRetry'這是可選的。你能提供一個重現問題的示例項目嗎? – spencergibb

+0

@spencergibb測試第二天工作。我仍然沒有弄清楚爲什麼,因爲我沒有改變項目和代碼的任何內容。不管怎麼說,還是要謝謝你。 – leo

+0

@leo,我想你錯過了一個彈簧靴罐 –

回答

0

我得到這個塊莫名其妙地解決。這是我的測試類和bootstrap.yml。

package com.yrd.configserver.test; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.core.env.ConfigurableEnvironment; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestParam; 
import org.springframework.web.bind.annotation.RestController; 

/** 
* This is a embedded spring boot web application for integration test. 
*/ 
@SpringBootApplication 
@RestController 
public class ConfigserverClient { 

    static { 
    System.setProperty("spring.cloud.config.enabled", "true"); 
    } 

    @Autowired 
    private ConfigurableEnvironment environment; 

    public static void main(final String... args) { 
    SpringApplication.run(ConfigserverClient.class, args); 
    } 


    /** 
    * This method is a way to get the specific configuration from the web application. 
    * @param propertyName: property name of the configuration. 
    * @return 
    */ 
    @RequestMapping("/show") 
    public String getPropertyByName(final @RequestParam String propertyName) { 
    return environment.getProperty(propertyName); 
    } 
} 

bootstrap.yml

spring: 
    cloud: 
    config: 
     enabled: true 
     discovery: 
     enabled: false 

     profile: env_${ENV:development} 

     label: master 
     uri: http://user:[email protected]:8888 

    application: 
    name: configserver-test 
    config: 
    name: configserver-test # This config is to stop the client web app to read the application.yml in the path. 

security.basic.enabled: false 
management.security.enabled: false 
server.port: ${app.port:8080}