WebFlux может работать в контейнерах сервлетов с поддержкой API неблокирующего ввода-вывода сервлета 3.1, а также в других средах выполнения asyn c, таких как Netty и Undertow.
Каждую весну Загрузочное веб-приложение включает встроенный веб-сервер.
Для приложений с реактивным стеком spring-boot-starter-webflux
по умолчанию включает Reactor Netty. И он не включает Servlet API
(Netty не является средой выполнения сервлетов), но похоже, что ваш Elastic APM
ожидает, что этот API будет присутствовать.
Попробуйте использовать spring-boot-starter-tomcat
вместо Netty. Когда переключается на другой HTTP-сервер , вам необходимо исключить зависимости по умолчанию в дополнение к тому, что вам нужно.
Вот пример:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<exclusions>
<!-- Exclude the Netty dependency -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-reactor-netty</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Use Tomcat instead -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
Зависимость Tomcat приносит Servlet API. Возможно, это решит вашу проблему.