2013-08-03 35 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