Dependency injection RESTeasy-如何使用@Context注释设置响应字段
使用RESTeasy 3.0.12,代码Dependency injection RESTeasy-如何使用@Context注释设置响应字段,dependency-injection,resteasy,Dependency Injection,Resteasy,使用RESTeasy 3.0.12,代码 @Context private org.jboss.resteasy.spi.HttpResponse response; 不起作用。响应总是空的 如何配置RESTeasy以通过@Context启用注入 -- 代码非常简单: 如果: @Path(“api/v1/admin”) @生成(“应用程序/json”) @使用(“应用程序/json”) 公共接口管理服务 { @放 @路径(“资源/{id}”) ServiceResponse updateRes
@Context
private org.jboss.resteasy.spi.HttpResponse response;
不起作用。响应总是空的
如何配置RESTeasy以通过@Context启用注入
--
代码非常简单:
如果:
@Path(“api/v1/admin”)
@生成(“应用程序/json”)
@使用(“应用程序/json”)
公共接口管理服务
{
@放
@路径(“资源/{id}”)
ServiceResponse updateResource(@PathParam(“id”)长。。。。
impl:
公共类AdminServiceImpl实现AdminService
{
@上下文
私有HttpServletResponse HttpServletResponse;//您不能注入org.jboss.resteasy.spi.HttpResponse的实例。来自:
@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
,或者在ContainerRequestFilter
中处理containerResponseSecontext
,或者注入javax.servlet.HttpServletResponse
,我同意您的意见,但我们有一个给定的设计gn在这里阻止使用javax.ws.rs.core.Response。我还尝试注入javax.servlet.HttpServletResponse,但这也是空的。还尝试使用WEB-INF/beans.xml并添加上下文参数resteasy.scan=true-没有任何帮助。注入javax.servlet.HttpServletResponse
应该可以工作。请提供e类。我无法用部署在WildFly 8.1.0.Final上的RESTeasy 3.0.6.Final重现这种行为。你能注入任何东西吗?我们的应用程序在没有Spring的jetty容器中运行。我们不注入任何东西。我们的应用程序在没有Spring的jetty容器中运行。我们在类路径上没有CDI。我们使用的是javax.ws.rs.core.Context(JAX-rs)注释,而不是javax.enterprise.context.spi.context(CDI)。是否使用javax.enterprise.context.spi.context注入HttpServletResponse实例?
@Path("api/v1/admin")
@Produces("application/json")
@Consumes("application/json")
public interface AdminService
{
@PUT
@Path("resource/{id}")
ServiceResponse<Resource> updateResource(@PathParam("id") long ....
public class AdminServiceImpl implements AdminService
{
@Context
private HttpServletResponse httpServletResponse; // <== instance always null
@Override
public ServiceResponse<Resource> updateResource(long resourceId, ...