Je ne parviens pas à afficher les informations de la base de données ou du système de fichiers sur le noeud final/health. Je peux seulement obtenir:
{
"status": "UP"
}
Détails sur ma configuration et ma configuration: - Spring Boot 1.3.3 - Exécution du fichier WAR sur JBoss EAP 6.4 - La source de données est une ressource JNDI .- Oracle est la base de données.
spring:
datasource:
# Must match the datasource name in JBoss standalone.xml
jndi-name: Java:jboss/beautiful-ds
driver-class-name: Oracle.jdbc.driver.OracleDriver
jpa:
properties:
# escapes reserved words used as column names (if any)
globally_quoted_identifiers: true
show-sql: true
hibernate:
naming_strategy: org.hibernate.cfg.EJB3NamingStrategy
server:
servlet-path: /*
management:
health:
diskspace:
enabled: true
db:
enabled: true
endpoints.health.sensitive: false
Une chose que j'ai trouvée sur/configprops est la suivante, et je ne suis pas sûr que ce soit lié:
"spring.datasource.CONFIGURATION_PROPERTIES": {
"prefix": "spring.datasource",
"properties": {
"error": "Cannot serialize 'spring.datasource'"
}
J'avais essayé d'ajouter "driver-class-name: Oracle.jdbc.driver.OracleDriver" en pensant qu'il aurait peut-être besoin de plus de détails, mais cela n'a pas changé la situation.
alors ouais, qu'est-ce qui donne? J'ai créé un exemple de projet Vanilla qui montre au moins les éléments du système de fichiers par la porte, alors vous ne savez pas trop pourquoi ne pas afficher dans ma "vraie" application. Dis-moi tes réponses géniales et sages! :)
Si vous utilisez la sécurité de ressort, la sécurité par défaut est activée pour les noeuds finaux d'actionneur.
management:
security:
enabled: false
Par défaut, Spring définit la propriété ci-dessous sur never
. Pour voir tous les détails de santé, ajoutez la propriété ci-dessous à votre application.properties
.
management.endpoint.health.show-details=always
De la documentation spring-boot
:
45.6 Sécurité avec HealthIndicators
Les informations renvoyées par HealthIndicators sont souvent de nature assez sensible. Par exemple, vous ne souhaiterez probablement pas publier les détails de votre serveur de base de données sur le monde. Pour cette raison, par défaut, seul l'état de santé est exposé via une connexion HTTP non authentifiée. Si vous êtes heureux pour informations de santé complètes pour toujours être exposé, vous pouvez définir endpoints.health.sensitive à false. Les réponses d'intégrité sont également mises en cache pour prévenir les attaques de «déni de service». Utilisez le endpoints.health.propriété time-to-live si vous souhaitez modifier le période de cache par défaut de 1000 millisecondes.
Assurez-vous que les propriétés suivantes sont définies.
endpoints.health.sensitive=true # Mark if the endpoint exposes sensitive information.
management.health.db.enabled=true # Enable database health check.
management.health.defaults.enabled=true # Enable default health indicators.
management.health.diskspace.enabled=true # Enable disk space health check.
IIUC, la santé globale est indiquée sous/santé, au moins (IIUC) pour springboot2. Ce qui signifie que même si tout est configuré correctement, une seule ligne sera affichée.
UPDATE: et si ce n'est pas ce dont vous avez besoin, vous devez demander spécifiquement à voir les détails. Vérifiez ces paramètres:
management.endpoint.health.show-details=when-authorized
management.endpoint.health.roles=ADMIN
Vous avez mélangé les syntaxes YAML et Properties dans votre fichier de configuration. Remplacez la dernière ligne par la suivante, et cela devrait fonctionner:
endpoints:
health:
sensitive: false