2023-07-14 01:01:42.068 ERROR 17452 --- [nio-8088-exec-1] a.w.r.e.AbstractErrorWebExceptionHandler : [1e611f88] 500 Server Error for HTTP PUT "/trans/getPutUploadUrl?fileName=123.jpg" java.lang.IllegalStateException: No primary or default constructor found for interface javax.servlet.http.HttpServletRequest at org.springframework.web.reactive.result.method.annotation.ModelAttributeMethodArgumentResolver.createAttribute(ModelAttributeMethodArgumentResolver.java:231) ~[spring-webflux-5.2.15.RELEASE.jar:5.2.15.RELEASE] Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s): |_ checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ HTTP PUT "/trans/getPutUploadUrl?fileName=123.jpg" [ExceptionHandlingWebHandler] 他报这个错误
时间: 2024-04-14 22:28:35 浏览: 248
根据您提供的错误信息,看起来是在使用Spring Boot的WebFlux模块时出现了问题。错误信息显示找不到`javax.servlet.http.HttpServletRequest`的默认构造函数。
Spring WebFlux是基于Reactive Streams的非阻塞式Web框架,它不依赖于传统的Servlet API。因此,直接使用`HttpServletRequest`可能会导致此错误。
解决方法是使用WebFlux提供的功能,而不是依赖于传统的`HttpServletRequest`。您可以尝试使用`ServerRequest`对象来处理HTTP请求。以下是一个示例代码片段:
```java
import org.springframework.web.reactive.function.server.ServerRequest;
public Mono<ServerResponse> handleRequest(ServerRequest request) {
// 处理请求逻辑
return ServerResponse.ok().build();
}
```
如果您需要访问请求的查询参数或路径变量等信息,您可以通过`ServerRequest`对象的相关方法来获取。例如,要获取查询参数`fileName`的值,可以使用`request.queryParam("fileName")`。
请注意,使用Spring WebFlux时,您还需要确保正确配置了相关依赖项,例如`spring-boot-starter-webflux`。
如果您仍然遇到困难,请提供更多关于您的代码和配置的详细信息,以便我们更好地帮助您解决问题。
阅读全文