2017-09-05 9 views
0

스프링 부트를 1.5.4로 업그레이드하고 작동 확인을 위해 액추에이터도 사용하고 있습니다. 빌드가 성공하지만 난 응용 프로그램 난 아래의 오류를 얻고을 실행하면 다른 패키지스프링 부트가있는 스프링 부트 액추에이터 1.5.4

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-config</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.security.oauth</groupId> 
     <artifactId>spring-security-oauth2</artifactId> 
    </dependency> 

    <!-- Cloud --> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-cloudfoundry-connector</artifactId> 
    </dependency> 

    <!-- Web --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>javax.ws.rs</groupId> 
     <artifactId>javax.ws.rs-api</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-frontend-jaxrs</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.jaxrs</groupId> 
     <artifactId>jackson-jaxrs-json-provider</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>4.0.8.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aspects</artifactId> 
     <version>4.0.8.RELEASE</version> 
    </dependency> 
    <!-- Util --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-autoconfigure</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-configuration-processor</artifactId> 
     <optional>true</optional> 
    </dependency> 
    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>commons-codec</groupId> 
     <artifactId>commons-codec</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
    </dependency> 

    <!-- ASCII Doc --> 
    <dependency> 
     <groupId>org.springframework.restdocs</groupId> 
     <artifactId>spring-restdocs-mockmvc</artifactId> 
     <version>${spring-restdocs.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context-support</artifactId> 
     <version>${spring-context-support.version}</version> 
    </dependency> 

    <!-- Test --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
    </dependency> 

버전 :

<spring-context-support.version>4.1.6.RELEASE</spring-context-support.version> 
    <spring-restdocs.version>1.0.0.RELEASE</spring-restdocs.version> 

다음
2017-09-05 14:18:19.523 [         ]#[NO_TRACE] WARN 26855 --- [   main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'endpointHandlerMapping' defined in class path resource [org/springframework/boot/actuate/autoconfigure/EndpointWebMvcManagementContextConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'o[email protected]1948ea69' bean method 
public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
to {[/loggers || /loggers.json],methods=[GET],params=[],headers=[],consumes=[],produces=[application/vnd.spring-boot.actuator.v1+json || application/json],custom=[]}: There is already 'o[email protected]1948ea69' bean method 
public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.LoggersMvcEndpoint.get(java.lang.String) mapped. 

2017-09-05 14:18:19.526 [         ]#[NO_TRACE] INFO 26855 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Unregistering JMX-exposed beans on shutdown 
2017-09-05 14:18:19.537 [         ]#[NO_TRACE] INFO 26855 --- [   main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 
2017-09-05 14:18:19.563 [         ]#[NO_TRACE] INFO 26855 --- [   main] utoConfigurationReportLoggingInitializer : 

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 
2017-09-05 14:18:19.577 [         ]#[NO_TRACE] ERROR 26855 --- [   main] o.s.boot.SpringApplication    : Application startup failed 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'endpointHandlerMapping' defined in class path resource [org/springframework/boot/actuate/autoconfigure/EndpointWebMvcManagementContextConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'o[email protected]1948ea69' bean method 
public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
to {[/loggers || /loggers.json],methods=[GET],params=[],headers=[],consumes=[],produces=[application/vnd.spring-boot.actuator.v1+json || application/json],custom=[]}: There is already 'o[email protected]1948ea69' bean method 
public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.LoggersMvcEndpoint.get(java.lang.String) mapped. 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) 
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) 
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) 
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) 
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) 
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134) 
at com.ge.apm.viewproxy.Application.main(Application.java:34) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) 
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) 
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) 
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) 

은 모두 받는다는 의존성은 스프링 관련이있다

나는 액추에이터 클래스가 1.5.4 버전의 스프링 부트를 참조하고 있으며 다른 버전의 스프링 부트가 내 응용 프로그램에서 언급되지 않았 음을 확인했습니다.

모든 포인터가 도움이 될 것입니다.

+0

Maven 또는 Gradle 파일을 게시하십시오. 스프링 클라우드 의존성을 업그레이드 했습니까? – Faron

+0

maven 종속성을 업데이트했습니다. 나는 봄 구름을 업그레이드하지 않았다. 나는 spring-cloud-cloudfoundry-connector와 그 가리키는 것을 사용하고있다. 1.2.4 –

+1

처음에는 스프링 버전을 섞는 것을 멈춘다 ... 4.0, 4.1, 4.3 단지를 혼합하고있다. 'spring-context-support-version '을 제거하십시오. 그 옆에 당신은 중복 의존성 등등이 있습니다. 그래서 당신의 pom을 청소해서 시작하십시오. –

답변

0

귀하의 의존 관계가 엉망입니다.

  1. 이미 스타터에 속한 추가 종속성을 포함하고 있습니다.
  2. 최소한 Spring 4.0, 4.1 및 4.3 버전을 혼합하고 있습니다.

개별적인 의존성 대신 모든 것을 제거하고 시동기를 사용하는 것이 좋습니다.

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-actuator</artifactId> 
</dependency> 

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-security</artifactId> 
</dependency> 

<dependency> 
    <groupId>org.springframework.security.oauth</groupId> 
    <artifactId>spring-security-oauth2</artifactId> 
</dependency> 

<!-- Cloud --> 
<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-cloudfoundry-connector</artifactId> 
</dependency> 

<!-- Web --> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
</dependency> 
<dependency> 
    <groupId>javax.ws.rs</groupId> 
    <artifactId>javax.ws.rs-api</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-rt-frontend-jaxrs</artifactId> 
</dependency> 
<dependency> 
    <groupId>com.fasterxml.jackson.jaxrs</groupId> 
    <artifactId>jackson-jaxrs-json-provider</artifactId> 
</dependency> 

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-aspects</artifactId> 
</dependency> 
<!-- Util --> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-configuration-processor</artifactId> 
    <optional>true</optional> 
</dependency> 
<dependency> 
    <groupId>commons-io</groupId> 
    <artifactId>commons-io</artifactId> 
</dependency> 
<dependency> 
    <groupId>commons-codec</groupId> 
    <artifactId>commons-codec</artifactId> 
</dependency> 
<dependency> 
    <groupId>javax.inject</groupId> 
    <artifactId>javax.inject</artifactId> 
</dependency> 

<!-- ASCII Doc --> 
<dependency> 
    <groupId>org.springframework.restdocs</groupId> 
    <artifactId>spring-restdocs-mockmvc</artifactId> 
    <version>${spring-restdocs.version}</version> 
    <scope>test</scope> 
</dependency> 

<!-- Test --> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-test</artifactId> 
    <scope>test</scope> 
</dependency> 
+0

위의 해결책이 좋습니다. 이 외에도 서로 상충되는 maven 아티팩트를 제외 할 수 있습니다. (Dependency Hierarchies에서). 뭔가, 제외를 추가하십시오.