我正在尝试使用Resteasy Docs中描述的嵌入式 Netty 实例测试带有 Resteasy 的资源。
注入路径参数和查询参数就像一个魅力,但后来我尝试测试注入HttpServletRequest
和HttpServletResponse
来自上下文的资源,如下所示:
@GET
@Path("/")
public void example(@Context HttpServletResponse response,
@Context HttpServletRequest request) { ... }
Resteasy 在上下文中找不到HttpServletRequest
并抛出以下异常:
5105 [r #1] DEB o.j.resteasy.core.SynchronousDispatcher - PathInfo: /auth
5201 [r #1] ERR c.s.f.v.s.r.e.ApplicationExceptionMapper - Unhandled application exception: Unable to find contextual data of type: javax.servlet.http.HttpServletRequest
org.jboss.resteasy.spi.LoggableFailure: Unable to find contextual data of type: javax.servlet.http.HttpServletRequest
我尝试按照RESTEasy Mock vs. Exception Mapper vs. Context中的建议将请求和响应的模拟版本放在上下文中,但它也不起作用,因为上下文数据是 ThreadLocal 并且 Netty 为每个请求生成一个新线程。
关于如何解决这个问题的任何想法?