使用struts2.1.6版本時,已搭建好struts2開發環境,程式無任何問題。但是,部署好項目之後,啟動Tomcat時Console報錯抛出異常:
嚴重: Exception starting filter struts2 java.lang.NullPointerException
如下圖所示:

出現這個錯誤的原因是:這是struts-2.1.6版本的一個BUG(貌似2.1.8也存在),配置檔案中設定了開發者模式,即structs.xml中包含了<constant name="struts.devMode" value="true" />,這時當Tomcat安裝目錄(從磁盤根目錄開始算)存在空格,或者部署項目虛拟路徑存在空格,就會抛出此異常。
請注意,這裡所說的Tomcat安裝目錄,指的是從磁盤根目錄開始算起,例如:我的Tomcat(壓縮版)是放在D盤下面的Program Files檔案夾中,是以它的安裝目錄為:D:\Program Files\apache-tomcat-7.0.56,這裡由于“Program Files”中存在一個空格,是以導緻了上文所說的啟動Tomcat時的異常。我的解決方法是将Tomcat檔案包移到D盤根目錄下,改變它的安裝目錄為:D:\apache-tomcat-7.0.56,當然你也可以将它放置到不包含空格的檔案夾下。
還有一種可能性是有人将Tomcat伺服器檔案包名稱改為類似“Tomcat 7.0”這種格式,其中Tomcat和7.0之間存在空格。
當然,避免這個錯誤的方法也可設定devmode為false或者将devmode設定語句删除:
<constant name="struts.devMode" value="false" />
但不推薦這樣做,使用開發者模式,這樣可以列印出更詳細的錯誤資訊。