2014-12-23 4 views
2

Я хотел бы иметь индикатор здоровья в моей конфигурации o весенний ботинок. Но мне это не удалось. У меня есть следующий класс с @компонентом, но когда я написал URL http: // «mydomain»/admin/health, или http: // «mydomain»/health, мое приложение ничего не извлекает.Постройте здоровье Весенний ботинок индикатора

@Component 
public class DBHealthIndicator extends AbstractHealthIndicator { 

private final AccountsService accountsService; 


@Autowired 
public DBHealthIndicator(AccountsService accountsService) { 
    if (accountsService == null) { 
     throw new IllegalArgumentException(
       "An AccountsService is mandatory."); 
    } 
    this.accountsService = accountsService; 

} 


@Override 
protected void doHealthCheck(Builder builder) throws Exception { 
    if (accountsService.getAccounts(1, 1)!= null){ 
     builder.up(); 
    }else{ 
     builder.down(); 
    } 

} 

} 

Anyboyd может мне помочь?

Спасибо

Update:

Вот мой application.yml

server: servlet-path: /api port: 8080 
mongodb: host: conexion port: 27017 databaseName: abC#uri: conexion 
management: context-path: /admin 
endpoints: health: enabled: yes shutdown: enabled: yes 
logging: # Enable this to specify the path and the name of the log file. By default, it creates a # file named spring.log in the temp directory. file: /tmp/abc.log 
level: com.abc: INFO 

ответ

1

По умолчанию пружинный загрузки приложения конфигурирования будет доступен на 8080 порту. Если вы не указали порт, то ваш URL-адрес службы здравоохранения - http://your.domain.com:8080/health.

Если настроить ваше приложение будет доступно на 80 портов, то проверьте конфигурацию управления:

management.port=8081 
management.context-path=/ 
management.security.enabled=true 

По умолчанию management.port использует тот же порт, как приложение.

Требуемые зависимости проект:

<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> 

После добавления этих зависимостей и включить безопасности в application.properties (или YML), вы увидите следующие конечные точки регистрации:

2014-12-29 12:22:06.239 INFO 14786 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'springSecurityFilterChain' to: [/*] 
2014-12-29 12:22:06.298 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/autoconfig],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2014-12-29 12:22:06.299 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/mappings],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2014-12-29 12:22:06.299 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/beans],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2014-12-29 12:22:06.300 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/error],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.util.Map<java.lang.String, java.lang.Object> org.springframework.boot.actuate.endpoint.mvc.ManagementErrorEndpoint.invoke() 
2014-12-29 12:22:06.300 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/configprops],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2014-12-29 12:22:06.301 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env/{name:.*}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String) 
2014-12-29 12:22:06.301 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/env],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2014-12-29 12:22:06.301 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/info],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2014-12-29 12:22:06.301 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/trace],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2014-12-29 12:22:06.302 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/health],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke() 
2014-12-29 12:22:06.302 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/dump],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2014-12-29 12:22:06.303 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/metrics/{name:.*}],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String) 
2014-12-29 12:22:06.303 INFO 14786 --- [   main] o.s.b.a.e.mvc.EndpointHandlerMapping  : Mapped "{[/metrics],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke() 
2014-12-29 12:22:06.347 INFO 14786 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8081/http 
2014-12-29 12:22:06.350 INFO 14786 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080/http 

Если вы дон не видеть их в журнале автозагрузки - тогда вы сделали что-то не так, и вам нужно вернуться и проверить, что у вас есть зависимости от проекта, и что модуль безопасности включен.

Полезные ссылки:

http://spring.io/guides/gs/spring-boot/ -- look for the section called: "Add production-grade services"

+0

Да, мне указать порт в 8080; и в моем приложении.yml у меня есть: конечные точки: здоровье: включено: да shutdown: включено: да – nole

+0

Но «да» не является допустимым булевым, поэтому вы, вероятно, отключили его. Он включен по умолчанию, поэтому нет необходимости включать его вручную. –

+0

Это значение не имеет значения, потому что если я удалю это свойство из файла, файл HealthIndicator не будет работать. – nole

0

Вот мой application.yml

server: 
    servlet-path: /api 
    port: 8080 

mongodb: 
    host: conexion 
    port: 27017 
    databaseName: abc 
    #uri: conexion 

management: 
    context-path: /admin 

endpoints: 
    health: 
    enabled: yes 
    shutdown: 
    enabled: yes 

logging: 
    # Enable this to specify the path and the name of the log file. By default, it creates a 
    # file named spring.log in the temp directory. 
    file: /tmp/abc.log  

    # Add other levels if you want to override the level configured in the logback.xml configuration file. 
    level: 
    com.abc: INFO 
+0

Предполагается, что это ответ на ваш вопрос или эта дополнительная информация? если первый, пожалуйста, сделайте это более ясным; если это редактирование вопроса, то добавьте это в вопрос вместо добавления ответа. – cfrick

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