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 楼答案
HttpServletRequest实例似乎从未被注入到请求字段中
您是否可以检查将HttpServletRequest注入到资源方法参数列表中,例如final@Context HttpServletRequest