1

У меня есть приложение загрузки Spring (автономный файл jar), который я пытаюсь развернуть на CloudFoundry. Я создал один экземпляр реестра службы в CloudFoundry и попытался нажать (cf push -p target\microservice-user-service-0.0.1-SNAPSHOT.jar) мое приложение (пользовательское обслуживание) с использованием CloudFoundry CLI.Spring Boot Application с Eureka на CloudFoundry healthcheck failed issue

Он успешно загружает приложение, а также успешно связывается с сервисом. После того, как начать, это дает проверку здоровья

признанию выпуску
2016-06-21T16:13:13.79-0400 [APP/0]  OUT 16: DEBUG StandardServletEnvironment - Initialized StandardServletEnvironment with PropertySources [servletConfigInitParams,servletContextInitParams,systemProperties,systemEnvironment] 
    2016-06-21T16:13:13.79-0400 [APP/0]  OUT 16: DEBUG WebappClassLoaderBase -  findClass(java.lang.ObjectCustomizer) 
    2016-06-21T16:13:13.79-0400 [APP/0]  OUT 16: DEBUG WebappClassLoaderBase -  --> Returning ClassNotFoundException 
    2016-06-21T16:13:13.79-0400 [APP/0]  OUT 16: DEBUG WebappClassLoaderBase -  findClass(org.springframework.web.filter.GenericFilterBeanCustomizer) 
    2016-06-21T16:13:13.79-0400 [APP/0]  OUT 16: DEBUG WebappClassLoaderBase -  --> Returning ClassNotFoundException 
    2016-06-21T16:13:13.79-0400 [APP/0]  OUT 16: DEBUG WebappClassLoaderBase -  findClass(org.springframework.security.web.FilterChainProxyCustomizer) 
    2016-06-21T16:13:13.79-0400 [APP/0]  OUT 16: DEBUG WebappClassLoaderBase -  --> Returning ClassNotFoundException 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG DelegatingFilterProxy - Filter 'springSecurityFilterChain' configured successfully 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG Registry - Managed= Tomcat:j2eeType=Filter,WebModule=//localhost/,name=springSecurityFilterChain,J2EEApplication=none,J2EEServer=none                                    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG BaseModelMBean - preRegister ApplicationFilterConfig[name=springSecurityFilterChain, filterClass=org.springframework.web.filter.DelegatingFilterProxy] Tomcat:j2eeType=Filter,WebModule=//localhost/,name=springSecurityFilterChain,J2EEApplication=none,J2EEServer=none 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG [/] - Starting filter 'webRequestLoggingFilter'                2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG Registry - Managed= Tomcat:j2eeType=Filter,WebModule=//localhost/,name=webRequestLoggingFilter,J2EEApplication=none,J2EEServer=none 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG BaseModelMBean - preRegister ApplicationFilterConfig[name=webRequestLoggingFilter, filterClass=org.springframework.boot.actuate.trace.WebRequestTraceFilter] Tomcat:j2eeType=Filter,WebModule=//localhost/,name=webRequestLoggingFilter,J2EEApplication=none,J2EEServer=none 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG StandardContext - Starting completed 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] to [STARTING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] to [STARTED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [Pipeline[StandardEngine[Tomcat].StandardHost[localhost]]] to [INITIALIZING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [Pipeline[StandardEngine[Tomcat].StandardHost[localhost]]] to [INITIALIZED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [Pipeline[StandardEngine[Tomcat].StandardHost[localhost]]] to [STARTING_PREP] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.valves.ErrorReportValve[localhost]] to [INITIALIZING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG Registry - Managed= Tomcat:type=Valve,host=localhost,name=ErrorReportValve 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG BaseModelMBean - preRegister org.apache.catalina.valves.ErrorReportValve[localhost] Tomcat:type=Valve,host=localhost,name=ErrorReportValve 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.valves.ErrorReportValve[localhost]] to [INITIALIZED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.valves.ErrorReportValve[localhost]] to [STARTING_PREP] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.valves.ErrorReportValve[localhost]] to [STARTING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.valves.ErrorReportValve[localhost]] to [STARTED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.core.StandardHostValve[localhost]] to [INITIALIZING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG Registry - Managed= Tomcat:type=Valve,host=localhost,name=StandardHostValve 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG BaseModelMBean - preRegister org.apache.catalina.core.StandardHostValve[localhost] Tomcat:type=Valve,host=localhost,name=StandardHostValve 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.core.StandardHostValve[localhost]] to [INITIALIZED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.core.StandardHostValve[localhost]] to [STARTING_PREP] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.core.StandardHostValve[localhost]] to [STARTING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.core.StandardHostValve[localhost]] to [STARTED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [Pipeline[StandardEngine[Tomcat].StandardHost[localhost]]] to [STARTING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [Pipeline[StandardEngine[Tomcat].StandardHost[localhost]]] to [STARTED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [StandardEngine[Tomcat].StandardHost[localhost]] to [STARTING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [StandardEngine[Tomcat].StandardHost[localhost]] to [STARTED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [Pipeline[StandardEngine[Tomcat]]] to [INITIALIZING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [Pipeline[StandardEngine[Tomcat]]] to [INITIALIZED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [Pipeline[StandardEngine[Tomcat]]] to [STARTING_PREP] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.core.StandardEngineValve[Tomcat]] to [INITIALIZING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG Registry - Managed= Tomcat:type=Valve,name=StandardEngineValve 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG BaseModelMBean - preRegister org.apache.catalina.core.StandardEngineValve[Tomcat] Tomcat:type=Valve,name=StandardEngineValve 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.core.StandardEngineValve[Tomcat]] to [INITIALIZED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.core.StandardEngineValve[Tomcat]] to [STARTING_PREP] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.core.StandardEngineValve[Tomcat]] to [STARTING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [org.apache.catalina.core.StandardEngineValve[Tomcat]] to [STARTED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [Pipeline[StandardEngine[Tomcat]]] to [STARTING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [Pipeline[StandardEngine[Tomcat]]] to [STARTED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [StandardEngine[Tomcat]] to [STARTING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [StandardEngine[Tomcat]] to [STARTED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [[email protected]] to [STARTING_PREP] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [[email protected]] to [STARTING] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG Mapper - Registered host [localhost] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG MapperListener - Register Wrapper [default] in Context [] for service [StandardService[Tomcat]] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG MapperListener - Register Wrapper [dispatcherServlet] in Context [] for service [StandardService[Tomcat]] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG MapperListener - Register Context [] for service [StandardService[Tomcat]] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG MapperListener - Register host [localhost] at domain [null] for service [StandardService[Tomcat]] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [[email protected]] to [STARTED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [StandardService[Tomcat]] to [STARTED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG LifecycleBase - Setting state for [StandardServer[-1]] to [STARTED] 
    2016-06-21T16:13:13.80-0400 [APP/0]  OUT 16: DEBUG StandardServletEnvironment - Replacing [servletContextInitParams] PropertySource with [servletContextInitParams] 
    2016-06-21T16:13:14.18-0400 [HEALTH/0] OUT healthcheck failed 
    2016-06-21T16:13:14.18-0400 [HEALTH/0] OUT Exit status 1 
    2016-06-21T16:13:14.50-0400 [APP/0]  OUT 16: DEBUG LoggingRestTemplate - Created GET request for "https://api.run.pivotal.io/info" 
    2016-06-21T16:13:14.50-0400 [APP/0]  OUT 16: DEBUG LoggingRestTemplate - Setting request Accept header to [text/plain, application/json, application/*+json, */*] 
    2016-06-21T16:13:14.51-0400 [APP/0]  OUT 16: DEBUG RequestAddCookies - CookieSpec selected: default 
    2016-06-21T16:13:14.52-0400 [APP/0]  OUT 16: DEBUG RequestAuthCache - Auth cache not set in the context 
    2016-06-21T16:13:14.52-0400 [APP/0]  OUT 16: DEBUG PoolingHttpClientConnectionManager - Connection request: [route: {s}->https://api.run.pivotal.io:443][total kept alive: 0; route allocated: 0 of 5; total allocated: 0 of 10] 
    2016-06-21T16:13:14.54-0400 [APP/0]  OUT 16: DEBUG PoolingHttpClientConnectionManager - Connection leased: [id: 0][route: {s}->https://api.run.pivotal.io:443][total kept alive: 0; route allocated: 1 of 5; total allocated: 1 of 10] 
    2016-06-21T16:13:14.54-0400 [APP/0]  OUT 16: DEBUG MainClientExec - Opening connection {s}->https://api.run.pivotal.io:443 
    2016-06-21T16:13:14.54-0400 [APP/0]  OUT 16: DEBUG DefaultHttpClientConnectionOperator - Connecting to api.run.pivotal.io/52.72.101.87:443 
    2016-06-21T16:13:14.54-0400 [APP/0]  OUT 16: DEBUG SSLConnectionSocketFactory - Connecting socket to api.run.pivotal.io/52.72.101.87:443 with timeout 0 
    2016-06-21T16:13:14.70-0400 [HEALTH/0] OUT healthcheck failed 
    2016-06-21T16:13:14.70-0400 [HEALTH/0] OUT Exit status 1 
    2016-06-21T16:13:15.74-0400 [HEALTH/0] OUT healthcheck failed 

Это соединение моего user-service применения в Github.

Ниже содержание моего application.yml файла:

# Spring properties 
spring: 
    application: 
    name: ${vcap.application.name} 
    cloud: 
    services: 
     registrationMethod: route 

--- 

spring: 
    profiles: dev 

security: 
    basic: 
    enabled: false 

# Logging 
logging: 
    level: 
    ROOT: INFO 
    org.springframework.web: DEBUG 

Это мой manifest.yml файл:

instances: 1 
memory: 1024M 
applications: 
    - name: user-service 
    services: 
     - my-eureka-server 
    env: 
     SPRING_PROFILES_ACTIVE: dev 

pom.xml файл как ниже:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.verizon.microservice</groupId> 
    <artifactId>microservice-user-service</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>microservice-user-service</name> 
    <description>Demo project Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.5.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>org.springframework.cloud</groupId> 
       <artifactId>spring-cloud-dependencies</artifactId> 
       <version>Brixton.SR1</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <dependencies> 

     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-cloudfoundry-discovery</artifactId> 
     </dependency> 

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

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

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

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

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 

    <repositories> 
     <repository> 
      <id>spring-milestones</id> 
      <name>Spring Milestones</name> 
      <url>https://repo.spring.io/milestone</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 
     <repository> 
      <id>spring-release</id> 
      <url>https://repo.spring.io/libs-release</url> 
     </repository> 
    </repositories> 

</project> 

Любой может мне помочь, чего не хватает. Я пытался найти решение повсюду, но не смог его получить.

Заранее спасибо

+0

Вы работаете на JDK 8 и Tomcat 8? – Hrabosch

+0

Похоже, что ваше приложение не удалось запустить, вы можете просмотреть свои журналы еще раз, отклонение уровня журнала может помочь немного больше - 'logging.level.root = DEBUG' –

+0

Да, я использую JDK 8 и Tomcat 8. Экземпляр Tomcat создается автоматически с помощью Spring Boot startter pom. – Anzar

ответ

0

Я могу решить эту проблему, в настоящее время. Мне не хватало переменную среды CloudFoundry PORT в файле application.yml.

Этот вопрос link объясняет проблему.

Теперь application.yml файл выглядит, как belwo:

# HTTP Server 
server: 
    port: ${vcap.PORT} 

# Spring properties 
spring: 
    application: 
    name: ${vcap.application.name} 
    cloud: 
    services: 
     registrationMethod: route 

--- 

spring: 
    profiles: dev 
--- 
security: 
    basic: 
    enabled: false 

--- 

# Logging 
logging: 
    level: 
    ROOT: INFO 
    org.springframework.web: INFO 

Теперь мое приложение и работает на Cloud Foundry. Я могу получить доступ к сервисам с помощью URL-адресов.

0

Это не имеет ничего общего с конфигурацией POM.

Можете ли вы указать имя домена и HOST при нажатии этого приложения? Ниже приведена ошибка, связанная с проверкой работоспособности:

Register host [localhost] at domain [null] for service [StandardService[Tomcat]]