2013-08-03 33 views
0

我在一个页面上的这一点获得了NullPointerException,而在其他页面上它工作正常。当从ServletContext获取真实路径时发生NullPointerException

String filePath = servletRequest.getSession().getServletContext(). 
         getRealPath("/uploads/pictures"); 

我不明白,为什么我得到错误?

+0

其他页面是否也在会话中? – kunal

+0

该代码永远不会抛出一个'NPE'?可能问题在别的地方。你能显示周围的代码吗? –

+0

这两个动作都有相同的代码。在一个动作中它的工作正常,并在其他给空指针异常。 – Ananda

回答

1

那么我忘了执行ServletRequestAware这是导致错误。 现在解决。非常感谢您的回复。

+1

你也可以从'ServletActionContext'获取请求,但是这更像S2。 –

0

Servlet比普通的Java类多。他们需要WebContainer来执行,并且某些方法的输出完全依赖Web容器。如果在WebContainer中执行此方法比在“getServletContext()。getRealPath()”方法中执行的操作要少,它将返回路径,但如果在外部(与您所做的相同)它将返回Null值。 为了在servlet外部使用这个,比从servlet本身设置会话对象或请求对象中的“路径”。

+1

[@Rohit Jain](http://stackoverflow.com/users/1679863/rohit-jain)我认为他有一些网络资源错误。 – Sheel