Клиент Spring Boot не смог зарегистрироваться у администратора
У меня сервер администрирования Spring Boot работает нормально. Вот файлы:
pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-boot-admin.version>2.1.0</spring-boot-admin.version>
</properties>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server-ui</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-dependencies</artifactId>
<version>${spring-boot-admin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
application.properties
server.port = 9090
spring.application.name = adminserver
DemoApplication.java
@SpringBootApplication
@EnableAdminServer
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Это прекрасно работает. Я могу перейти к http://localhost:9090/#/applications
и видеть админ-сервер просто отлично.
Проблема в том, что я пытаюсь зарегистрировать одно из моих клиентских приложений на сервере. Вот детали для моего клиентского приложения:
pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.0.RC1</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>1.5.7</version>
</dependency>
</dependencies>
application.yml
spring:
profiles: default
boot:
admin:
url: http://localhost:9090
management:
context-path: /actuator
Когда я запускаю клиентское приложение, я могу перейти к http://localhost:8081/actuator/health
и видеть всю информацию о здоровье просто отлично. Но я также получаю эти ошибки в консоли:
DEBUG --- [ registrationTask1] de.codecentric.boot.admin.client.registration.ApplicationRegistrator : Failed to register application as Application [name=ClientApp, managementUrl=http://richard-desktop:8081/actuator/, healthUrl=http://richard-desktop:8081/actuator/health/, serviceUrl=http://richard-desktop:8081/] at spring-boot-admin ([http://localhost:9090/api/applications]): 404 Not Found
DEBUG --- [ registrationTask1] de.codecentric.boot.admin.client.registration.ApplicationRegistrator : Failed to register application as Application [name=ClientApp, managementUrl=http://richard-desktop:8081/actuator/, healthUrl=http://richard-desktop:8081/actuator/health/, serviceUrl=http://richard-desktop:8081/] at spring-boot-admin ([http://localhost:9090/api/applications]): 404 Not Found
DEBUG --- [ registrationTask1] de.codecentric.boot.admin.client.registration.ApplicationRegistrator : Failed to register application as Application [name=ClientApp, managementUrl=http://richard-desktop:8081/actuator/, healthUrl=http://richard-desktop:8081/actuator/health/, serviceUrl=http://richard-desktop:8081/] at spring-boot-admin ([http://localhost:9090/api/applications]): 404 Not Found
Что я здесь не так делаю?
1 ответ
В основном это не удалось зарегистрировать из-за разницы в версии Spring Boot Admin Server(2.1.0) и Client(1.5.7).
Клиент 1.5.7 обращается к серверу с URL-адресом // сервер: порт / API / приложения, но сервер 2.1.0 ожидает регистрации на // сервере: порт / экземпляр пути, поэтому просто нужно обновить клиент, чтобы найти ожидаемый путь к серверу.
Просто запустите сервер / клиент в журналах отладки, чтобы получить дополнительную подсказку о том, на какой URL он пытается попасть.
Следует отметить, что мы не будем получать всю информацию из-за несовместимости версий для многих конечных точек. Модуль привода полностью изменился между 1.X и 2.X.
С вышеупомянутым пунктом ниже есть обходной путь, чтобы сделать это с ограничениями:
Клиентский Java-файл:
@SpringBootApplication
public class ClientApplication {
public static void main(String[] args) {
SpringApplication.run(ClientApplication.class, args);
}
}
Файл свойств клиента:
server.port=8081
spring.boot.admin.url=http://localhost:8080
spring.boot.admin.api-path=/instances
management.security.enabled=false
Это работает для меня с ограничениями, такими как неспособность видеть метрики и т. Д., Но все еще много информации, видимой на Admin Server.