My web service is implementing webclient
from springboot webflux
. In the meantime, it is also using javax.servlet.http.HttpServletRequest
in some functions (see below).
@GetMapping("/app-info")
fun appInfo(
request: HttpServletRequest,
@QueryParam("printAlerts") printAlerts: Boolean?,
): ResponseEntity<AppInfo>? {
val context = request.servletContext
val metrics: Map<String, Any> = AppMonitoring.getAppMetrics()
So, in the build.gradle.kts
file, I implements both spring-boot-starter-webflux
and spring-boot-starter-web
.
However, our team decided to use Netty only. So I need to exclude tomcat. However, HttpservletRequest
will be no longer available after excluding tomcat.
implementation("org.springframework.boot:spring-boot-starter-web") {
exclude(group = "org.apache.logging.log4j", module = "*")
exclude(group = "ch.qos.logback", module = "*")
exclude(group = "org.slf4j", module = "*")
exclude(group = "commons-logging", module = "*")
exclude(group = "log4j", module = "*")
exclude(group = "org.springframework.boot", module = "spring-boot-starter-tomcat")
}
Is there a way that allow me to exclude tomcat completely but also using HttpservletRequest
? I need HttpServletRequest
object to get ServletContext
which is an required argument for a library function.
I referenced this post. Reactive Spring does not support HttpServletRequest as parameter in REST endpoint?
However, org.springframework.http.server.reactive.ServerHttpRequest
is could not return what I need.