Ни Spring Boot Actuator + Hal-Browser, ни DevTools не работают
Обновлено: приложен pom.xml и application.property и еще несколько сообщений об ошибках / предупреждениях
Привет, я новичок в Spring Boot и просто беру несколько уроков по Udemy.
Следуя классу, я создаю стартовый проект с помощью spring.io и добавляю зависимости от браузера и исполнительного механизма, включая инструменты Dev.
Просто запустил это и попытался перейти на localhost:8080/application & /browser, но я получаю 404.
Что я делаю неправильно.
Я написал простой bean-компонент, который возвращает жестко запрограммированное значение, а затем распечатал его, изменил значение, чтобы протестировать инструменты Dev, и он не перезапускал ресурс, мне пришлось убить и перезапустить приложение, чтобы отразить новые изменения.
Как я могу проверить, в чем проблема?
Если я могу предоставить Pom.xml и консоль захватить, если это будет необходимо.
Пожалуйста помоги.
Обновление: я не знаю значения следующего, поэтому помещаю это здесь.
в редакторе XML hal подчеркнут красным с указанием следующего сообщения при наведении
Управляемая версия - 3.0.5.RELEASE Управление артефактом в org.springframework.data:spring-data-releasetrain:Kay-SR5.
в редакторе XML devtools подчеркнут красным с указанием следующего сообщения при наведении курсора
Управляемая версия 2.0.0.RELEASE Управление артефактом осуществляется в org.springframework.boot:spring-boot-dependencies:2.0.0.RELEASE
<groupId>com.myoxigen.training.springboot</groupId>
<artifactId>library</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>library</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</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-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-browser</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-devtools</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
свойства приложения
logging.level.org.springframework = DEBUG
management.security.enabled = ложь
5 ответов
Примечание. Этот ответ основан на Spring Boot 2 (пути и свойства изменены по сравнению с версией 1).
Ваш pom.xml
выглядит хорошо для меня. Чтобы "Браузер HAL" работал с приводом, у вас должны быть стартеры: web
, actuator
, а также Rest Repositories HAL Browser
, Я рекомендую Spring Initializr как хороший способ построить исходную правильную структуру проекта.
Путь по умолчанию для привода /actuator
, Здоровье, например, на /actuator/health
,
Чтобы просмотреть конечные точки привода в браузере HAL, перейдите к /browser/index.html#/actuator
,
Вы можете изменить путь привода в application.properties
установив следующее.
management.endpoints.web.base-path=/actuator
Чтобы запустить ваш сервер, используйте следующую консольную команду:
./mvnw clean spring-boot:run
Если у вас есть DevTools
в вашем проекте, затем изменения в файлах в вашем classpath перезапустят сервер. Смотрите мои дальнейшие комментарии о том, как воспользоваться DevTools здесь.
Вот соответствующая документация на одной странице для удобного поиска:
Add this Dependency:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-browser</artifactId>
<version>3.3.5.RELEASE</version>
</dependency>`enter code here`
And then go to link:
http://localhost:8080/browser/index.html#
Приложения Spring Boot 2.2 должны использовать spring-data-rest-hal-explorer , а не spring-data-rest-hal-browser.
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-explorer</artifactId>
</dependency>
Для включения привода добавьте это в файл свойств (application.properties).
management.endpoints.web.exposure.include=*
Перезапустите приложение загрузки Spring и получите доступ к конечным точкам привода, используя:
http://localhost:8080/actuator/
за работоспособностью приложения также можно следить с помощью:
http://localhost:8080/actuator/health
требуется зависимость:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Разве вы не изучали курс "через 28 минут"? =) В любом случае, когда я изучал курс Spring Boot для начинающих за 10 шагов, я столкнулся с той же проблемой с доступомhttp://localhost:8080/application
.
За http://localhost:8080/browser
Я получил равнину json
:
{"cause":null,"message":"Fragment must not be empty"}
В pom.xml
У меня были те же зависимости, что вы указали в вопросе.
Некоторые поисковые запросы привели меня к этой статье. В разделе "II. Hal Browser" вы можете увидеть скриншот, на котором в браузере есть ссылкаhttp://localhost:8080/browser/index.html#
. Если использовать эту ссылку, то должен волшебным образом появиться Hal Browser.
Так /index.html#
был единственный кусок головоломки, который вы пропустили.
Примечание: вышеуказанный подход работал с Spring Boot версии 2.1.7.
РЕДАКТИРОВАТЬ: несмотря на то, что сам Hal Browser работает с вышеуказанным подходом, он по-прежнему не показывает конечные точки привода. И DevTools у меня тоже не работает.