有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

servlets Java在使用@Stateless时无法使用HttpServlet的方法检索请求的数据

我创建了一个web服务,在该服务上使用@Stateless注释,即

 @Stateless
 @Path("/boo/too")
 public class RestController {

@Context 
private HttpServletRequest request;

@Context
private ServletContext context;


@GET
@Path("/coo")
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public GetResObj getFuncName(
        @HeaderParam("foo") String foo,
        @QueryParam("boo") String boo
        ) throws Exception{ 

    MyClass className =(ClassCast) request.getSession().getAttribute("myClassInstance");
}

现在,从我所做的一些阅读和对这个问题的准确回答来看: question

,我理解无状态对象是一个可以有变量但不可变(不能保存任何状态)的对象。当使用@Stateless注释时,代码的request.getSession()部分抛出nullPointerException。当我删除@Stateless注释时,request.getSession()工作正常

你能明白为什么会这样吗


共 (1) 个答案

  1. # 1 楼答案

    HttpServletRequest实例似乎从未被注入到请求字段中

    您是否可以检查将HttpServletRequest注入到资源方法参数列表中,例如final@Context HttpServletRequest