无法找到类型的上下文数据:java.ws.rs.container.ContainerRequest(Wildfly错误)

问题描述 投票:2回答:2

我正在使用wildfly 9.0.1.Final

我正在部署一个REST应用程序,其端点定义如下:

@GET
@Path("/view/products")
@Produces(MediaType.APPLICATION_JSON)
@CORSEnabled
@Protected
public String getConfiguredProducts(
    @Context ContainerRequestContext request) {
    if (request != null) {
        Integer companyId = (Integer) request.getProperty("company");
        if (companyId != null) {
             //do stuff
        }
    }
    // ... more staff
}

当应用程序运行时,将注入上下文,即“request”不为null。

当我尝试检索属性时,我得到了错误:

executing GET /complaints/view/products:        
org.jboss.resteasy.spi.LoggableFailure: Unable to find contextual data    
of type: javax.ws.rs.container.ContainerRequestContext

请注意,应用程序在glassfish / jersey上运行没有问题,当我尝试将它移动到wildfly / resteasy时出现问题。

有任何想法吗?

jax-rs wildfly resteasy
2个回答
4
投票

我正在回答我自己的问题,因为似乎RestEasy不支持注入ContainerRequestContext,至少根据这个

https://docs.jboss.org/resteasy/docs/1.1.GA/userguide/html_single/#_Context

@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对象。

我注入了一个javax.ws.rs.core.HttpHeaders,之前我已经添加了我需要的所有信息。


1
投票

我也有错误RESTEASY003880: Unable to find contextual data of type: javax.ws.rs.core.HttpHeaders

它是由访问不同线程中的标头引起的。

希望在谷歌搜索问题时答案会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.