为什么我在调用getSessionAttribute()时收到`请求必须不为null`异常?

时间:2013-05-21 15:36:24

标签: java servlets request httprequest portlet

为什么我的代码收到以下错误?

  

错误500:请求处理失败;嵌套异常是java.lang.IllegalArgumentException:Request不能为null

代码段

protected void buildPdfDocument(Map modelo, Document document, PdfWriter pdfWriter, HttpServletRequest request, HttpServletResponse response) throws IOException
{

    // The problem is here to pass HttpServletRequest to ActionRequest or PortletRequest
    ActionRequest aRequest = (ActionRequest) request.getAttribute("javax.portlet.request");

    // I need to validate user's session
    Cliente cliente = (Cliente) PortletUtils.getSessionAttribute(aRequest, AtokConstante.CLIENTE_SESION,PortletSession.APPLICATION_SCOPE);
}

1 个答案:

答案 0 :(得分:0)

如果您的例外没有堆栈跟踪,我怀疑您的变量aRequestNULL。这意味着尚未在"javax.portlet.request"对象中设置属性HttpServletRequest request。您可能会将此aRequest传递给PortletUtils.getSessionAttribute(),这会抛出异常。

在没有任何其他代码的情况下,我只建议您在request方法之前调查buildPdfDocument()的生命周期,并确保在关键{{1}处保存您的预期值或者您首先使用正确的键字符串。