使用RESTeasy 3.0.12,代码
@Context
private org.jboss.resteasy.spi.HttpResponse response;
不起作用。响应始终为空。
如何配置RESTeasy以通过@Context启用注入?
- 代码非常简单: IF:
@Path("api/v1/admin")
@Produces("application/json")
@Consumes("application/json")
public interface AdminService
{
@PUT
@Path("resource/{id}")
ServiceResponse<Resource> updateResource(@PathParam("id") long ....
IMPL:
public class AdminServiceImpl implements AdminService
{
@Context
private HttpServletResponse httpServletResponse; // <== instance always null
@Override
public ServiceResponse<Resource> updateResource(long resourceId, ...
答案 0 :(得分:0)
您无法注入org.jboss.resteasy.spi.HttpResponse
的实例。来自the docs:
@Context注释允许您注入javax.ws.rs.core.HttpHeaders,javax.ws.rs.core.UriInfo,javax.ws.rs.core.Request,javax.servlet.HttpServletRequest,javax的实例.servlet.HttpServletResponse,javax.servlet.ServletConfig,javax.servlet.ServletContext和javax.ws.rs.core.SecurityContext对象。
要处理回复,您通常会从ResourceClass方法返回javax.ws.rs.core.Response
的实例,或者使用ContainerResponseContext
中的ContainerRequestFilter
或注入javax.servlet.HttpServletResponse