【发布时间】:2017-03-14 15:57:08
【问题描述】:
我创建了一个如下所示的 RestController:
@RestController
public class GreetingController {
@RequestMapping(value = "/greetings", method = RequestMethod.GET)
public Mono<Greeting> greeting(HttpServletRequest request) {
return Mono.just(new Greeting("Hello..." + request.toString()));
}
}
不幸的是,当我尝试点击“问候”端点时,我得到了一个异常:
java.lang.IllegalStateException:没有类型的参数 [0] 的解析器 [org.apache.catalina.servlet4preview.http.HttpServletRequest]
我正在使用
compile('org.springframework.boot.experimental:spring-boot-starter-web-reactive')
如何解决这个问题?
Link 到完整的堆栈跟踪。 Link build.gradle
---------编辑---------
使用界面。现在得到:
java.lang.IllegalStateException:没有类型的参数 [0] 的解析器 [javax.servlet.http.HttpServletRequest] on 方法(其余相同)
【问题讨论】:
-
您使用了错误的
HttpServletRequest。使用接口而不是具体的实现。 -
已修复,但 Spring 仍然给您带来麻烦。
-
尝试在 HttpServletRequest 请求之前添加@Context? cxf.apache.org/docs/…
-
Nope 没有一个“HandlerMethodArgumentResolver”,如下面我的回答中提到的那样处理这个注释。我认为 ServletServerHttpRequest 是要走的路...
标签: java spring spring-mvc spring-webflux